435. 无重叠区间
作者:互联网
//20220403
题目描述:给定一个区间的集合 intervals ,其中 intervals[i] = [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。
题目链接:点我
解题思路:
- 贪心,我们可以把区间想象成时间区段,每个时间区段有一个会议,我们需要在这么多时间区段里尽可能安排多的会议场数,这时我们就需要从会议结束的时间来找,让每个会议结束时间尽可能的早,为后面的会议留更多的时间,最终我们得到的就是最多会议的一个安排
- 代码如下:
class Solution {
public int eraseOverlapIntervals(int[][] intervals) {
Arrays.sort(intervals,new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return o1[1]-o2[1];
}
}
);
int right = intervals[0][1];
int ans = 1;
for(int i = 1;i<intervals.length;++i){
if(intervals[i][0]>=right){
ans++;
right = intervals[i][1];
}
}
return intervals.length-ans;
}
}
这一题太经典了
希望对大家有所帮助
以上
标签:right,重叠,int,intervals,ans,区间,区段,435 来源: https://www.cnblogs.com/lavender-pansy/p/16095502.html