题目

题解
思路:一个区间越小,就能留出更多的空间分给其他区间。如果后面一个区间的头小于前面一个区间的尾,就移除后面的区间;如果不需要移除,就把它们两合并成新的区间;
class Solution:
def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:
intervals.sort(key=lambda x: x[1])
removed=0;
right=intervals[0][1]
for i in range(1, len(intervals)):
if intervals[i][0] < right:
removed += 1
else:
right = intervals[i][1]
return removed
该博客介绍了一种消除重叠区间的方法,通过排序区间并比较相邻区间来减少重叠。算法首先对区间按结束时间排序,然后遍历区间,若当前区间的开始时间小于前一个区间的结束时间,则计数器加一,否则更新右边界。最后返回移除的区间数。
8万+

被折叠的 条评论
为什么被折叠?



