給定一個區間的集合,找到需要移除區間的最小數量,使剩余區間互不重疊。
注意:
可以認為區間的終點總是大于它的起點。
區間 [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;}
}