Skip to content

Commit 036832e

Browse files
refactor 56
1 parent d0b87b7 commit 036832e

File tree

1 file changed

+22
-37
lines changed
  • src/main/java/com/fishercoder/solutions

1 file changed

+22
-37
lines changed

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

Lines changed: 22 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -5,44 +5,29 @@
55
import java.util.ArrayList;
66
import java.util.List;
77

8-
/**
9-
* 57. Insert Interval
10-
*
11-
* Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary).
12-
13-
You may assume that the intervals were initially sorted according to their start times.
14-
15-
Example 1:
16-
Given intervals [1,3],[6,9], insert and merge [2,5] in as [1,5],[6,9].
17-
18-
Example 2:
19-
Given [1,2],[3,5],[6,7],[8,10],[12,16], insert and merge [4,9] in as [1,2],[3,10],[12,16].
20-
21-
This is because the new interval [4,9] overlaps with [3,5],[6,7],[8,10].
22-
*/
238
public class _57 {
249

25-
public static class Solution1 {
26-
public List<Interval> insert(List<Interval> intervals, Interval newInterval) {
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;
10+
public static class Solution1 {
11+
public List<Interval> insert(List<Interval> intervals, Interval newInterval) {
12+
List<Interval> result = new ArrayList<>();
13+
int i = 0;
14+
// 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++));
17+
}
18+
// merge all overlapping intervals to one considering newInterval
19+
while (i < intervals.size() && intervals.get(i).start <= newInterval.end) {
20+
newInterval = new Interval( // we could mutate newInterval here also
21+
Math.min(newInterval.start, intervals.get(i).start),
22+
Math.max(newInterval.end, intervals.get(i).end));
23+
i++;
24+
}
25+
result.add(newInterval);
26+
// add all the rest
27+
while (i < intervals.size()) {
28+
result.add(intervals.get(i++));
29+
}
30+
return result;
31+
}
4632
}
47-
}
4833
}

0 commit comments

Comments
 (0)