美文网首页
435. Non-overlapping Intervals

435. Non-overlapping Intervals

作者: morningstarwang | 来源:发表于2021-02-06 17:38 被阅读0次

    Ref: https://leetcode-cn.com/problems/non-overlapping-intervals/

    这道题的思路是考虑以何种顺序遍历全部区间,使得去除最少的区间数目以实现其他区间均无重叠。直观上看,可以以每个intervals[i][1]为key,对整个intervals进行升序排序。同时,维护当前遍历区间的前一个区间的右边界为prev,当当前的区间interval[i][0]<prev时,可以认为当前区间应当remove,故计数加一。直到遍历全部的区间后,可以返回最小的remove结果。代码实现如下:

    class Solution:
        def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:
            n = len(intervals)
            if n == 0:
                return 0
            intervals.sort(key=lambda x: x[1])
            result = 0
            prev = intervals[0][1]
            for i in range(1, n):
                if intervals[i][0] < prev:
                    result += 1
                else:
                    prev = intervals[i][1]
            return result
    

    相关文章

      网友评论

          本文标题:435. Non-overlapping Intervals

          本文链接:https://www.haomeiwen.com/subject/gysotltx.html