按
照
右
端
点
排
序
,
每
次
看
当
前
区
间
的
左
端
点
与
上
一
个
区
间
的
右
端
点
是
否
有
交
集
,
按照右端点排序,每次看当前区间的左端点与上一个区间的右端点是否有交集,
按照右端点排序,每次看当前区间的左端点与上一个区间的右端点是否有交集,
无
交
集
则
最
大
不
相
交
区
间
数
量
加
一
,
更
新
右
端
点
无交集则最大不相交区间数量加一,更新右端点
无交集则最大不相交区间数量加一,更新右端点
class Solution {
public:
static bool cmp(vector<int> &a, vector<int>&b){
return a[1] < b[1];
}
int eraseOverlapIntervals(vector<vector<int>>& intervals) {
int n = intervals.size();
if(!n) return 0;
int res = 1;
sort(intervals.begin(), intervals.end(), cmp);
int l = intervals[0][0], r = intervals[0][1];
for(int i = 1; i < n; i++){
if(intervals[i][0] >= r){
res++;
r = intervals[i][1];
}
}
return n - res;
}
};
作者:陈平安
链接:https://www.acwing.com/activity/content/code/content/1944495/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。