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 List<List<Integer>> removeInterval(int[][] intervals, int[] toBeRemoved) {
List<List<Integer>> ans = new ArrayList<>();
int ptr = 0;
while (ptr < intervals.length && intervals[ptr][1] <= toBeRemoved[0]) {
ans.add(new ArrayList<>(Arrays.asList(intervals[ptr][0], intervals[ptr][1])));
ptr += 1;
}

while (ptr < intervals.length && intervals[ptr][0] < toBeRemoved[1]) {
if (intervals[ptr][0] < toBeRemoved[0]) {
ans.add(new ArrayList<>(Arrays.asList(intervals[ptr][0], toBeRemoved[0])));
}
if (intervals[ptr][1] > toBeRemoved[1]) {
ans.add(new ArrayList<>(Arrays.asList(toBeRemoved[1], intervals[ptr][1])));
}
ptr += 1;
}

while (ptr < intervals.length) {
ans.add(new ArrayList<>(Arrays.asList(intervals[ptr][0], intervals[ptr][1])));
ptr += 1;
}
return ans;
}
}

有点儿类似那个添加一个interval, 然后把相交的intervals都合并, 返回最后的intervals的样子.