0
点赞
收藏
分享

微信扫一扫

【leetcode】435.无重叠区间

绪风 2022-04-08 阅读 37

题目详见435.无重叠区间

解题思路

  • 按照右边界排序,右边界越小越好,这样留给下面的边界区域就可以更大
  • 找最多无重叠区域的个数,等价于删除最少的重叠区间

Talk is cheap,show me the code

class Solution:
    def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:
        if len(intervals) == 0:
            return 0
        # 按照右边界排序
        intervals.sort(key = lambda x:x[1])
        # 第一个右边界 如果下一个区域不重叠
        # 将right 赋值成下一个区域的右边界
        # result 表示无重叠区域
        right = intervals[0][1] 
        result = 1
        for i in range(len(intervals)):
            if intervals[i][0] >= right:
                result += 1
                right = intervals[i][1]
        return len(intervals) - result
举报

相关推荐

0 条评论