标签:right 重叠 int intervals ans 区间 区段 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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。