---
# System prepended metadata

title: 1288. Remove Covered Intervals
tags: [Leetcode, Intervals, Medium, Greedy]

---

# 1288. Remove Covered Intervals
###### tags: `Leetcode` `Medium` `Greedy` `Intervals`
Link: https://leetcode.com/problems/remove-covered-intervals/description/
## 思路
按左端点排序 如果左端点相等 按右端点从大到小排序
对于一个curr interval来说我们要找到所有在它后面 并且右端点小于它的右端点```end```的 因为这些interval的左端点肯定大于等于它的左端点 所以它们一定是相交的 这些一定是要删掉的interval
跳过这些interval之后 如果我们遇到了一个右端点大于```end```的interval
我们就把end更新 然后继续循环

里层的while回圈就是用来跳过要删掉的interval的
## Code
```java=
class Solution {
    public int removeCoveredIntervals(int[][] intervals) {
        Arrays.sort(intervals, (a,b)->(a[0]==b[0]?(b[1]-a[1]):(a[0]-b[0])));
        int n = intervals.length;
        int idx = 0;
        int end = -1;
        int ans = 0;
        while(idx<n){
            while(idx<n && end>=intervals[idx][1]){
                idx++;
                ans++;
            }
            if(idx!=n) end = Math.max(intervals[idx][1], end);
            idx++;
        }
        return n-ans;
    }
}
```