Leetcode-435 :Non-overlapping Intervals
问题描述:
已知一堆区间,问最少需要移除对少个区间可以使剩下的区间无冲突呢
Example1:
1
2
3 >Input: [[1,2],[2,3],[3,4],[1,3]]
>Output: 1
>Explanation: [1,3] can be removed and the rest of intervals are non-overlapping.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 >// 我们将所有区间按照结束时间 进行从小到大的排序,然后对于最早结束时间的那个区间A来说,需要比较下一个区间B(按照排序的顺序)的开始时间是否大于A的结束时间,若大于则不需要移除A,若小于A的结束时间,则需要移除B。循环这个过程。。。
>class Solution {
public int eraseOverlapIntervals(int[][] intervals) {
if(intervals == null || intervals.length == 0) return 0;
Arrays.sort(intervals,(a,b)->a[1]-b[1]);
int res = 0, end = intervals[0][1];
for(int i=1;i<intervals.length;i++){
if(intervals[i][0] >= end){
end = intervals[i][1];
}else{
res++;
}
}
return res;
}
>}