leetcode435
题目要求
1 | Given a collection of intervals, find the minimum number of intervals you need to remove to make the rest of the intervals non-overlapping. |
使用二维数组表示区间组,每一个子数组的第一个值表示区间的开始坐标,第二个值表示区间的结束坐标。计算最少进行多少次删除操作,可以确保剩下的区间不会产生任何重叠。
思路和代码
假设有两个区间, 这两个区间之间会存在以下几种关系:
- 毫无重叠,此时无需进行删除
- 部分重叠。则需要找出和周围区间交叉最少的区间进行保留。如果将区间按照从小到大的次序排列,出现这种情况时,每次都保留前一个区间。
- 区间1为区间2的子区间或区间2为区间1的子区间,则保留子区间,删除父区间
代码如下:
1 | public int eraseOverlapIntervals(int[][] intervals) { |