435. 无重叠区间 - 力扣(LeetCode) (leetcode-cn.com)
首先按照结尾排序,按照贪心思想,结尾越小越能给后面留下空间,其次用一个变量count记录完整的没有重叠的空间的个数,这里通过前一个空间的结尾要小于等于后一个空间的起始,最后返回数组长度-count便是重复的空间个数。
注意要传引用,否则超时,因为每传一个,程序便调用构造函数构造对象,传引用只需8个字节。
class Solution {
public:
static bool cmp(vector<int>&a,vector<int>&b){//传引用
return a[1]<b[1];
}
int eraseOverlapIntervals(vector<vector<int>>& intervals) {
sort(intervals.begin(),intervals.end(),cmp);
int n=intervals.size();
int end=intervals[0][1];
int count=1;
for(int i=0;i<n;i++){
if(intervals[i][0]<end){
continue;
}
count++;
end=intervals[i][1];
}
return n-count;
}
};