题干:
代码:
class Solution {
public:
static bool cmp(vector<int>& a, vector<int>& b){
return a[0] < b[0];
}
int eraseOverlapIntervals(vector<vector<int>>& intervals) {
sort(intervals.begin(), intervals.end(), cmp);
int tmp = 0;
for(int i = 1; i < intervals.size(); i++){
if(intervals[i][0] >= intervals[i - 1][1]);
//读题:可以取等,例子告知边界重合不算重叠
else{
intervals[i][1] = min(intervals[i][1], intervals[i - 1][1]);
tmp++;
}
}
return tmp;
}
};
本题跟上一题类似,都是关于区间重叠问题。唯一不同点在于计数器++的位置不一样,上一题是判断不重叠时加一,这题是重叠时加一,本质上就是根据题意修改代码。
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 刷代码随想录有感(93):贪心算法——无重叠区间(区间重叠问题:求区间重叠次数)
发表评论 取消回复