forked from AnasImloul/Leetcode-Solutions
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathInsert Interval.java
26 lines (25 loc) · 905 Bytes
/
Insert Interval.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Solution {
public int[][] insert(int[][] intervals, int[] newInterval) {
if (newInterval == null || newInterval.length == 0) return intervals;
List<int[]> merged = new LinkedList<>();
int i = 0;
// add not overlapping
while (i < intervals.length && intervals[i][1] < newInterval[0]) {
merged.add(intervals[i]);
i++;
}
// add overlapping
while (i < intervals.length && intervals[i][0] <= newInterval[1]) {
newInterval[0] = Math.min(intervals[i][0], newInterval[0]);
newInterval[1] = Math.max(intervals[i][1], newInterval[1]);
i++;
}
merged.add(newInterval);
// add rest
while (i < intervals.length) {
merged.add(intervals[i]);
i++;
}
return merged.toArray(new int[merged.size()][]);
}
}