# 1288. Remove Covered Intervals

Given an array `intervals` where `intervals[i] = [li, ri]` represent the interval `[li, ri)`, remove all intervals that are covered by another interval in the list.

The interval `[a, b)` is covered by the interval `[c, d)` if and only if `c <= a` and `b <= d`.

Return  the number of remaining intervals.

Example 1:

``````Input: intervals = [[1,4],[3,6],[2,8]]
Output: 2
Explanation: Interval [3,6] is covered by [2,8], therefore it is removed.
``````

Example 2:

``````Input: intervals = [[1,4],[2,3]]
Output: 1
``````

Constraints:

• `1 <= intervals.length <= 1000`
• `intervals[i].length == 2`
• `0 <= li < ri <= 105`
• All the given intervals are unique.

``````class Solution {
public:
int removeCoveredIntervals(vector<vector<int>>& intervals) {
sort(intervals.begin(), intervals.end());
int res = 1, n = intervals.size(), left = intervals[0][0], right = intervals[0][1];
for (int i = 1; i < n; ++i) {
if (intervals[i][0] > left && intervals[i][1] > right) {
left = intervals[i][0];
++res;
}
right = max(right, intervals[i][1]);
}
return res;
}
};
``````

Github 同步地址:

https://github.com/grandyang/leetcode/issues/1288

https://leetcode.com/problems/remove-covered-intervals/

https://leetcode.com/problems/remove-covered-intervals/discuss/451277/JavaC%2B%2BPython-Sort-Solution

LeetCode All in One 题目讲解汇总(持续更新中…)

|

Venmo 打赏

—|—

 微信打赏 Venmo 打赏
（欢迎加入博主的知识星球，博主将及时答疑解惑，并分享刷题经验与总结，试运营期间前五十位可享受半价优惠～）

×

Help us with donation