题目描述:
思路:想要找到移除重叠区间的最小值,那我们就要避免重叠,当一个区间的结尾越小时,留给其余区间的空间就越多。
所以,我们先把所有区间的开头按照大小从小到大排队。
接着我们以一开始第一个区间的结尾作为起点,与后面区间的开头所比较,这时候有两种情况:、
代码如下:
import java.util.Arrays;
class Solution {
public int eraseOverlapIntervals(int[][] intervals) {
if(intervals.length==0)
return 0;
Arrays.sort(intervals,(o1, o2) -> o1[0]-o2[0]); //按区间开头的大小来排序
int res=0;
int end=intervals[0][1];
for(int i=1;i<intervals.length;i++){
//思路是从排好序的数组里,比较两区间是否重叠
if(end<=intervals[i][0]){
end=intervals[i][1];
}else{
end=Math.min(end,intervals[i][1]);
res++;
}
}
return res;
}
}