美文网首页
435. Non-overlapping Intervals

435. Non-overlapping Intervals

作者: 阿团相信梦想都能实现 | 来源:发表于2016-12-17 04:17 被阅读0次
    interval scheduling maximization problem 
    greedy solution 
    rank the intervals by finishing time
    initialize ending time as -inf 
    if the start time if the interval intersect the last interval's end time , then remove this interval. 
    reason: after sorting the intervals by their ending time, the intervals that all intersect the ending time of interval x all intersect each other. there will only be one interval in the group that will be in the optimal solution set, therefore, remove all intervals other than x. 
    # Definition for an interval.
    # class Interval(object):
    #     def __init__(self, s=0, e=0):
    #         self.start = s
    #         self.end = e
    
    class Solution(object):
        def eraseOverlapIntervals(self, intervals):
            """
            :type intervals: List[Interval]
            :rtype: int
            """
            res=0
            end=float('-inf')
            intervals.sort(key=lambda x:x.end)
            for item in intervals:
                if item.start>=end:
                    end=item.end
                else:
                    res+=1
                        
            return res
    

    相关文章

      网友评论

          本文标题:435. Non-overlapping Intervals

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