给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。
注意:
可以认为区间的终点总是大于它的起点。
区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。
示例 1:
输入: [ [1,2], [2,3], [3,4], [1,3] ]
输出: 1
解释: 移除 [1,3] 后,剩下的区间没有重叠。
代码
class Solution {public int eraseOverlapIntervals(int[][] intervals) {if(intervals.length==0) return 0;Arrays.sort(intervals,((o1, o2) -> o1[1]-o2[1]));//按区间末尾大小升序int end=intervals[0][1];int cnt=0;for(int i=0;i<intervals.length;i++){if(intervals[i][0]<end)//与前面的区间重叠了{cnt++;continue;}end=intervals[i][1];//新的结尾}return cnt-1;}
}