删除被覆盖区间
https://leetcode-cn.com/problems/remove-covered-intervals/
排序并观察
依照惯例,按区间起点升序对区间排序,如果起点相同则按终点降序排序。

排序后,香菱区间的相对关系只有 3 个可能:

- 找到了覆盖的区间
 
- 区间相交,可以视作合并为一个更大的区间
 
- 区间不相交
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
   | func removeCoveredIntervals(intervals [][]int) int {     sort.Slice(intervals, func(i, j int) bool {         if intervals[i][0] == intervals[j][0] {             return intervals[i][1] > intervals[j][1]         } else {             return intervals[i][0] < intervals[j][0]         }     })
      left, right := intervals[0][0], intervals[0][1]     count := 0
      for i := 1; i < len(intervals); i++ {                  if intervals[i][0] >= left && intervals[i][1] <= right {             count++         }
                   if intervals[i][0] >= left && intervals[i][1] > right {             right = intervals[i][1]         }
                   if intervals[i][0] > right {             left = intervals[i][0]             right = intervals[i][1]         }     }
      return len(intervals) - count }
 
  |