-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path0057. Insert Interval
More file actions
47 lines (46 loc) · 1.68 KB
/
0057. Insert Interval
File metadata and controls
47 lines (46 loc) · 1.68 KB
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
class Solution {
public int[][] insert(int[][] intervals, int[] newInterval) {
// int len = intervals.length;
// List<List<Integer>> list = new ArrayList<>();
// int i = 0;
// while(i < len && intervals[i][1] < newInterval[0]){
// list.add(Arrays.asList(intervals[i][0], intervals[i][1]));
// i++;
// }
// while(i < len && intervals[i][0] <= newInterval[1]){
// newInterval[0] = Math.min(intervals[i][0], newInterval[0]);
// newInterval[1] = Math.max(intervals[i][1], newInterval[1]);
// i++;
// }
// list.add(Arrays.asList(newInterval[0], newInterval[1]));
// while(i < len){
// list.add(Arrays.asList(intervals[i][0], intervals[i][1]));
// i++;
// }
// int[][] res = new int[list.size()][2];
// int j = 0;
// for(List<Integer> e : list){
// res[j][0] = e.get(0);
// res[j][1] = e.get(1);
// j++;
// }
// return res;
List<int[]> arr = new ArrayList<>();
int i = 0, n = intervals.length;
while (i < n && intervals[i][1] < newInterval[0]) {
arr.add(intervals[i]);
i++;
}
while (i < n && intervals[i][0] <= newInterval[1]) {
newInterval[0] = Math.min(newInterval[0], intervals[i][0]);
newInterval[1] = Math.max(newInterval[1], intervals[i][1]);
i++;
}
arr.add(newInterval);
while (i < n) {
arr.add(intervals[i]);
i++;
}
return arr.toArray(new int[0][0]);
}
}