2023.7.16
只能说贪心还真他娘的没什么道理
先排序,然后开始遍历,如果当前区间和上一个有重叠,那就去掉右边界值较大的那个区间
因为右边界值较大更容易与后面的区间发生重叠。
class Solution:
def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:
intervals.sort(key=lambda x: x[0]) # 按照左边界升序排列
result = 0
for i in range(1, len(intervals)):
if intervals[i][0]>= intervals[i-1][1]:
# 当前左边界大于之前的右边界
pass
else:
intervals[i][1] = min(intervals[i][1], intervals[i-1][1])
result += 1
return result