题目
类型:贪心
难度:中等
题意:删除最少的重叠区间。对于[L, R]区间,按照R从小到大排序。
class Solution {
public:
int eraseOverlapIntervals(vector<vector<int>>& intervals) {
if(intervals.empty()) return 0;
//按照结束时间排序
sort(intervals.begin(), intervals.end(), [](const vector<int>a, const vector<int> b){
return a[1] < b[1];
});
int right = intervals[0][1];
int count = 1; //开始为1
for(auto intv : intervals){
if(intv[0] >= right) count++, right = intv[1];
}
return intervals.size() - count;
}
};