Skip to content

Commit 77eed36

Browse files
refactor 57
1 parent 8649208 commit 77eed36

File tree

2 files changed

+32
-34
lines changed

2 files changed

+32
-34
lines changed

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

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -22,26 +22,27 @@
2222
*/
2323
public class _57 {
2424

25+
public static class Solution1 {
2526
public List<Interval> insert(List<Interval> intervals, Interval newInterval) {
26-
List<Interval> result = new ArrayList<>();
27-
int i = 0;
28-
// add all the intervals ending before newInterval starts
29-
while (i < intervals.size() && intervals.get(i).end < newInterval.start) {
30-
result.add(intervals.get(i++));
31-
}
32-
// merge all overlapping intervals to one considering newInterval
33-
while (i < intervals.size() && intervals.get(i).start <= newInterval.end) {
34-
newInterval = new Interval( // we could mutate newInterval here also
35-
Math.min(newInterval.start, intervals.get(i).start),
36-
Math.max(newInterval.end, intervals.get(i).end));
37-
i++;
38-
}
39-
result.add(newInterval);
40-
// add all the rest
41-
while (i < intervals.size()) {
42-
result.add(intervals.get(i++));
43-
}
44-
return result;
27+
List<Interval> result = new ArrayList<>();
28+
int i = 0;
29+
// add all the intervals ending before newInterval starts
30+
while (i < intervals.size() && intervals.get(i).end < newInterval.start) {
31+
result.add(intervals.get(i++));
32+
}
33+
// merge all overlapping intervals to one considering newInterval
34+
while (i < intervals.size() && intervals.get(i).start <= newInterval.end) {
35+
newInterval = new Interval( // we could mutate newInterval here also
36+
Math.min(newInterval.start, intervals.get(i).start),
37+
Math.max(newInterval.end, intervals.get(i).end));
38+
i++;
39+
}
40+
result.add(newInterval);
41+
// add all the rest
42+
while (i < intervals.size()) {
43+
result.add(intervals.get(i++));
44+
}
45+
return result;
4546
}
46-
47+
}
4748
}

src/test/java/com/fishercoder/_57Test.java

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,26 +12,23 @@
1212

1313
import static org.junit.Assert.assertEquals;
1414

15-
/**
16-
* Created by stevesun on 6/14/17.
17-
*/
1815
public class _57Test {
19-
private static _57 test;
16+
private static _57.Solution1 solution1;
2017
private static List<Interval> intervals;
2118
private static List<Interval> expected;
2219
private static List<Interval> actual;
2320

2421
@BeforeClass
2522
public static void setup() {
26-
test = new _57();
23+
solution1 = new _57.Solution1();
2724
}
2825

2926
@Test
3027
public void test1() {
3128
intervals = new ArrayList<>(Arrays.asList(new Interval(1, 3), new Interval(6, 9)));
3229
expected = new ArrayList<>(Arrays.asList(new Interval(1, 5), new Interval(6, 9)));
3330
CommonUtils.printIntervals(intervals);
34-
actual = test.insert(intervals, new Interval(2, 5));
31+
actual = solution1.insert(intervals, new Interval(2, 5));
3532
CommonUtils.printIntervals(actual);
3633
assertEquals(expected, actual);
3734
}
@@ -42,7 +39,7 @@ public void test2() {
4239
intervals = new ArrayList<>(Arrays.asList(new Interval(1, 2), new Interval(3, 5), new Interval(6, 7), new Interval(8, 10), new Interval(12, 16)));
4340
CommonUtils.printIntervals(intervals);
4441
expected = new ArrayList<>(Arrays.asList(new Interval(1, 2), new Interval(3, 10), new Interval(12, 16)));
45-
actual = test.insert(intervals, new Interval(4, 9));
42+
actual = solution1.insert(intervals, new Interval(4, 9));
4643
CommonUtils.printIntervals(actual);
4744
assertEquals(expected, actual);
4845
}
@@ -52,7 +49,7 @@ public void test3() {
5249
intervals = new ArrayList<>(Arrays.asList(new Interval(1, 5)));
5350
CommonUtils.printIntervals(intervals);
5451
expected = new ArrayList<>(Arrays.asList(new Interval(1, 5)));
55-
actual = test.insert(intervals, new Interval(2, 3));
52+
actual = solution1.insert(intervals, new Interval(2, 3));
5653
CommonUtils.printIntervals(actual);
5754
assertEquals(expected, actual);
5855
}
@@ -62,7 +59,7 @@ public void test4() {
6259
intervals = new ArrayList<>(Arrays.asList());
6360
CommonUtils.printIntervals(intervals);
6461
expected = new ArrayList<>(Arrays.asList(new Interval(5, 7)));
65-
actual = test.insert(intervals, new Interval(5, 7));
62+
actual = solution1.insert(intervals, new Interval(5, 7));
6663
CommonUtils.printIntervals(actual);
6764
assertEquals(expected, actual);
6865
}
@@ -72,7 +69,7 @@ public void test5() {
7269
intervals = new ArrayList<>(Arrays.asList(new Interval(1, 5)));
7370
expected = new ArrayList<>(Arrays.asList(new Interval(1, 5), new Interval(6, 8)));
7471
CommonUtils.printIntervals(intervals);
75-
actual = test.insert(intervals, new Interval(6, 8));
72+
actual = solution1.insert(intervals, new Interval(6, 8));
7673
CommonUtils.printIntervals(actual);
7774
assertEquals(expected, actual);
7875
}
@@ -82,7 +79,7 @@ public void test6() {
8279
intervals = new ArrayList<>(Arrays.asList(new Interval(1, 5)));
8380
expected = new ArrayList<>(Arrays.asList(new Interval(0, 5)));
8481
CommonUtils.printIntervals(intervals);
85-
actual = test.insert(intervals, new Interval(0, 3));
82+
actual = solution1.insert(intervals, new Interval(0, 3));
8683
CommonUtils.printIntervals(actual);
8784
assertEquals(expected, actual);
8885
}
@@ -92,7 +89,7 @@ public void test7() {
9289
intervals = new ArrayList<>(Arrays.asList(new Interval(1, 5)));
9390
expected = new ArrayList<>(Arrays.asList(new Interval(0, 0), new Interval(1, 5)));
9491
CommonUtils.printIntervals(intervals);
95-
actual = test.insert(intervals, new Interval(0, 0));
92+
actual = solution1.insert(intervals, new Interval(0, 0));
9693
CommonUtils.printIntervals(actual);
9794
assertEquals(expected, actual);
9895
}
@@ -102,7 +99,7 @@ public void test8() {
10299
intervals = new ArrayList<>(Arrays.asList(new Interval(2, 5), new Interval(6, 7), new Interval(8, 9)));
103100
expected = new ArrayList<>(Arrays.asList(new Interval(0, 1), new Interval(2, 5), new Interval(6, 7), new Interval(8, 9)));
104101
CommonUtils.printIntervals(intervals);
105-
actual = test.insert(intervals, new Interval(0, 1));
102+
actual = solution1.insert(intervals, new Interval(0, 1));
106103
CommonUtils.printIntervals(actual);
107104
assertEquals(expected, actual);
108105
}
@@ -112,7 +109,7 @@ public void test9() {
112109
intervals = new ArrayList<>(Arrays.asList(new Interval(2, 4), new Interval(5, 7), new Interval(8, 10), new Interval(11, 13)));
113110
expected = new ArrayList<>(Arrays.asList(new Interval(2, 7), new Interval(8, 10), new Interval(11, 13)));
114111
CommonUtils.printIntervals(intervals);
115-
actual = test.insert(intervals, new Interval(3, 6));
112+
actual = solution1.insert(intervals, new Interval(3, 6));
116113
CommonUtils.printIntervals(actual);
117114
assertEquals(expected, actual);
118115
}

0 commit comments

Comments
 (0)