Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit8190b30

Browse files
refactor 57
1 parentbdf176e commit8190b30

File tree

2 files changed

+39
-104
lines changed

2 files changed

+39
-104
lines changed

‎src/main/java/com/fishercoder/solutions/_57.java

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,39 @@
11
packagecom.fishercoder.solutions;
22

3-
importcom.fishercoder.common.classes.Interval;
4-
53
importjava.util.ArrayList;
64
importjava.util.List;
75

86
publicclass_57 {
97

108
publicstaticclassSolution1 {
11-
publicList<Interval>insert(List<Interval>intervals,IntervalnewInterval) {
12-
List<Interval>result =newArrayList<>();
9+
publicint[][]insert(int[][]intervals,int[]newInterval) {
10+
List<int[]>list =newArrayList<>();
1311
inti =0;
1412
// add all the intervals ending before newInterval starts
15-
while (i <intervals.size() &&intervals.get(i).end<newInterval.start) {
16-
result.add(intervals.get(i++));
13+
while (i <intervals.length &&intervals[i][intervals[i].length -1]<newInterval[0]) {
14+
list.add(intervals[i++]);
1715
}
1816
// merge all overlapping intervals to one considering newInterval
19-
while (i <intervals.size() &&intervals.get(i).start <=newInterval.end) {
20-
newInterval =newInterval(// we could mutate newInterval here also
21-
Math.min(newInterval.start,intervals.get(i).start),
22-
Math.max(newInterval.end,intervals.get(i).end));
17+
while (i <intervals.length &&intervals[i][0] <=newInterval[newInterval.length -1]) {
18+
newInterval =newint[]{// we could mutate newInterval here also
19+
Math.min(newInterval[0],intervals[i][0]),
20+
Math.max(newInterval[newInterval.length -1],intervals[i][intervals[i].length -1])};
2321
i++;
2422
}
25-
result.add(newInterval);
23+
list.add(newInterval);
2624
// add all the rest
27-
while (i <intervals.size()) {
28-
result.add(intervals.get(i++));
25+
while (i <intervals.length) {
26+
list.add(intervals[i++]);
27+
}
28+
returnconvertToArray(list);
29+
}
30+
31+
privateint[][]convertToArray(List<int[]>list) {
32+
int[][]result =newint[list.size()][list.get(0).length];
33+
for (inti =0;i <list.size();i++) {
34+
for (intj =0;j <list.get(i).length;j++) {
35+
result[i][j] =list.get(i)[j];
36+
}
2937
}
3038
returnresult;
3139
}
Lines changed: 18 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,13 @@
11
packagecom.fishercoder;
22

3-
importcom.fishercoder.common.classes.Interval;
4-
importcom.fishercoder.common.utils.CommonUtils;
53
importcom.fishercoder.solutions._57;
64
importorg.junit.BeforeClass;
75
importorg.junit.Test;
86

9-
importjava.util.ArrayList;
10-
importjava.util.Arrays;
11-
importjava.util.List;
12-
137
importstaticorg.junit.Assert.assertEquals;
148

159
publicclass_57Test {
1610
privatestatic_57.Solution1solution1;
17-
privatestaticList<Interval>intervals;
18-
privatestaticList<Interval>expected;
19-
privatestaticList<Interval>actual;
2011

2112
@BeforeClass
2213
publicstaticvoidsetup() {
@@ -25,92 +16,28 @@ public static void setup() {
2516

2617
@Test
2718
publicvoidtest1() {
28-
intervals =newArrayList<>(Arrays.asList(newInterval(1,3),newInterval(6,9)));
29-
expected =newArrayList<>(Arrays.asList(newInterval(1,5),newInterval(6,9)));
30-
CommonUtils.printIntervals(intervals);
31-
actual =solution1.insert(intervals,newInterval(2,5));
32-
CommonUtils.printIntervals(actual);
33-
assertEquals(expected,actual);
19+
assertEquals(newint[][]{
20+
{1,5},
21+
{6,9}
22+
},solution1.insert(newint[][]{
23+
{1,3},
24+
{6,9}
25+
},newint[]{2,5}));
3426
}
3527

3628

3729
@Test
3830
publicvoidtest2() {
39-
intervals =newArrayList<>(Arrays.asList(newInterval(1,2),newInterval(3,5),newInterval(6,7),newInterval(8,10),newInterval(12,16)));
40-
CommonUtils.printIntervals(intervals);
41-
expected =newArrayList<>(Arrays.asList(newInterval(1,2),newInterval(3,10),newInterval(12,16)));
42-
actual =solution1.insert(intervals,newInterval(4,9));
43-
CommonUtils.printIntervals(actual);
44-
assertEquals(expected,actual);
45-
}
46-
47-
@Test
48-
publicvoidtest3() {
49-
intervals =newArrayList<>(Arrays.asList(newInterval(1,5)));
50-
CommonUtils.printIntervals(intervals);
51-
expected =newArrayList<>(Arrays.asList(newInterval(1,5)));
52-
actual =solution1.insert(intervals,newInterval(2,3));
53-
CommonUtils.printIntervals(actual);
54-
assertEquals(expected,actual);
55-
}
56-
57-
@Test
58-
publicvoidtest4() {
59-
intervals =newArrayList<>(Arrays.asList());
60-
CommonUtils.printIntervals(intervals);
61-
expected =newArrayList<>(Arrays.asList(newInterval(5,7)));
62-
actual =solution1.insert(intervals,newInterval(5,7));
63-
CommonUtils.printIntervals(actual);
64-
assertEquals(expected,actual);
65-
}
66-
67-
@Test
68-
publicvoidtest5() {
69-
intervals =newArrayList<>(Arrays.asList(newInterval(1,5)));
70-
expected =newArrayList<>(Arrays.asList(newInterval(1,5),newInterval(6,8)));
71-
CommonUtils.printIntervals(intervals);
72-
actual =solution1.insert(intervals,newInterval(6,8));
73-
CommonUtils.printIntervals(actual);
74-
assertEquals(expected,actual);
75-
}
76-
77-
@Test
78-
publicvoidtest6() {
79-
intervals =newArrayList<>(Arrays.asList(newInterval(1,5)));
80-
expected =newArrayList<>(Arrays.asList(newInterval(0,5)));
81-
CommonUtils.printIntervals(intervals);
82-
actual =solution1.insert(intervals,newInterval(0,3));
83-
CommonUtils.printIntervals(actual);
84-
assertEquals(expected,actual);
85-
}
86-
87-
@Test
88-
publicvoidtest7() {
89-
intervals =newArrayList<>(Arrays.asList(newInterval(1,5)));
90-
expected =newArrayList<>(Arrays.asList(newInterval(0,0),newInterval(1,5)));
91-
CommonUtils.printIntervals(intervals);
92-
actual =solution1.insert(intervals,newInterval(0,0));
93-
CommonUtils.printIntervals(actual);
94-
assertEquals(expected,actual);
95-
}
96-
97-
@Test
98-
publicvoidtest8() {
99-
intervals =newArrayList<>(Arrays.asList(newInterval(2,5),newInterval(6,7),newInterval(8,9)));
100-
expected =newArrayList<>(Arrays.asList(newInterval(0,1),newInterval(2,5),newInterval(6,7),newInterval(8,9)));
101-
CommonUtils.printIntervals(intervals);
102-
actual =solution1.insert(intervals,newInterval(0,1));
103-
CommonUtils.printIntervals(actual);
104-
assertEquals(expected,actual);
105-
}
106-
107-
@Test
108-
publicvoidtest9() {
109-
intervals =newArrayList<>(Arrays.asList(newInterval(2,4),newInterval(5,7),newInterval(8,10),newInterval(11,13)));
110-
expected =newArrayList<>(Arrays.asList(newInterval(2,7),newInterval(8,10),newInterval(11,13)));
111-
CommonUtils.printIntervals(intervals);
112-
actual =solution1.insert(intervals,newInterval(3,6));
113-
CommonUtils.printIntervals(actual);
114-
assertEquals(expected,actual);
31+
assertEquals(newint[][]{
32+
{1,2},
33+
{3,10},
34+
{12,16}
35+
},solution1.insert(newint[][]{
36+
{1,2},
37+
{3,5},
38+
{6,7},
39+
{8,10},
40+
{12,16}
41+
},newint[]{4,9}));
11542
}
11643
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp