leetcode 1288. 删除被覆盖区间

64 阅读1分钟

c++

class Solution {
public:
    int removeCoveredIntervals(vector<vector<int>>& intervals) {
        sort(intervals.begin(), intervals.end(), 
            [](const vector<int> &a, const vector<int> &b) ->bool {
                if (a[0] - b[0]) return a[0] < b[0];
                return a[1] > b[1];
            });
        int pre = -1, cnt = 0;
        for (auto x : intervals) {
            if (x[1] <= pre) cnt++;
            pre = max(pre, x[1]);                 
        }
        return intervals.size() - cnt;
    }
};

js

class Solution {
public:
    int removeCoveredIntervals(vector<vector<int>>& intervals) {
        sort(intervals.begin(), intervals.end(), 
            [](const vector<int> &a, const vector<int> &b) ->bool {
                if (a[0] - b[0]) return a[0] < b[0];
                return a[1] > b[1];
            });
        int pre = -1, cnt = 0;
        for (auto x : intervals) {
            if (x[1] <= pre) cnt++;
            pre = max(pre, x[1]);                 
        }
        return intervals.size() - cnt;
    }
};