Insert Interval LeetCode solution in Java

1
class Solution {
2
public int[][] insert(int[][] intervals, int[] newInterval) {
3
if (newInterval == null || newInterval.length == 0) return intervals;
4

5
List<int[]> merged = new LinkedList<>();
6
int i = 0;
7
// add not overlapping
8
while (i < intervals.length && intervals[i][1] < newInterval[0]) {
9
merged.add(intervals[i]);
10
i++;
11
}
12
// add overlapping
13
while (i < intervals.length && intervals[i][0] <= newInterval[1]) {
14
newInterval[0] = Math.min(intervals[i][0], newInterval[0]);
15
newInterval[1] = Math.max(intervals[i][1], newInterval[1]);
16
i++;
17
}
18
merged.add(newInterval);
19
// add rest
20
while (i < intervals.length) {
21
merged.add(intervals[i]);
22
i++;
23
}
24
return merged.toArray(new int[merged.size()][]);
25
}
26
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0