# 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; } } ```