-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsolution.java
More file actions
24 lines (21 loc) · 876 Bytes
/
solution.java
File metadata and controls
24 lines (21 loc) · 876 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution {
public int[][] insert(int[][] intervals, int[] newInterval) {
List<int[]> left = new ArrayList<>();
List<int[]> right = new ArrayList<>();
for(int[] intv : intervals){
if(newInterval[0] > intv[1]){ //When Start of new is bigger than end of curr
left.add(intv);
} else if(newInterval[1] < intv[0]) { //When End of new is smaller than start of cur
right.add(intv);
} else {
//Merge intervals
newInterval[0] = Math.min(newInterval[0], intv[0]);
newInterval[1] = Math.max(newInterval[1], intv[1]);
}
}
//Merge left part, mid part and right part
left.add(newInterval);
left.addAll(right);
return left.toArray(new int[left.size()][]);
}
}