435. 无重叠区间
贪心做法:区间右端点越小,后面越可能有更多的不重叠区间
时间复杂度:O(nlogn),其中 n是区间的数量。O(nlogn) 的时间对所有的区间按照右端点进行升序排序,并且需要 O(n)时间进行遍历。因此总时间复杂度为 O(nlogn)。
空间复杂度:O(logn),即为排序需要使用的栈空间
class Solution {
public:
//greedy : the minimum right point
int eraseOverlapIntervals(vector<vector<int>>& intervals) {
int n=intervals.size();
if(n==0)return 0;
//sort by the right point
sort(intervals.begin(),intervals.end(),[](auto& u1,auto& u2){
return u1[1]<u2[1];
});
int right=intervals[0][1];
int cnt=1;//不重叠区间的数量
for(int i=1;i<n;i++){
if(intervals[i][0]>=right){
cnt++;
right=intervals[i][1];
}
}
return n-cnt;
}
};