给定一个区间的集合 intervals
,其中 intervals[i] = [starti, endi]
。返回 需要移除区间的最小数量,使剩余区间互不重叠 。
示例 1:
输入: intervals = [[1,2],[2,3],[3,4],[1,3]] 输出: 1 解释: 移除 [1,3] 后,剩下的区间没有重叠。
class Solution {
public int eraseOverlapIntervals(int[][] intervals) {
Arrays.sort(intervals, (o1, o2) -> o1[0] - o2[0]);
int num = 0;
int len = 0;
for (int i = 1; i < intervals.length; i++) {
if (intervals[i][0] < intervals[len][1]) {
if (intervals[i][1] < intervals[len][1]) {//保留最小右边界
len = i;
}
num++;
} else len = i;
}
return num;
}
}