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的样子.