美文网首页
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