title: 1288. Remove Covered Intervals
tags:
- sorting
categories: leetcode
comments: false
class Solution {
public:
int removeCoveredIntervals(vector<vector<int>>& intervals) {
// ๆๅบ๏ผๆ่ตท้ปๅๅบ๏ผ่ตท้ป็ธๅๆก็ต้ป้ๅบ
sort(intervals.begin(), intervals.end(),[](vector<int>& a, vector<int>&b){
if(a[0] == b[0] ) return a[1]>b[1];
return a[0]<b[0];
});
int n = intervals.size(), start = intervals[0][0], end = intervals[0][1];
int remove = 0;
for(int i=1;i<n;++i){
vector<int> & cur = intervals[i];
// [1,4] [3,5] ๅ้้็ => ๅฐend ๅๅณๆดๅผต
if( end >= cur[0] && end<cur[1]){
end = cur[1];
}
// [1,4] [2,3] ๅฎๅ
จ่ฆ่ => ๅฏไปฅ่ฆ่ไธๅๅ้ใ
else if(end>= cur[0] && end>=cur[1]){
remove++;
}
// [1,2] [4,6] ไธ้็
else{
start = cur[0];
end = cur[1];
}
}
return n - remove;
}
};
- time complexity
O(nlogn)
- space complexity
O(1)