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
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 题目如下: Given a collection of intervals, find the minimum n...
- Le silence est généralement définie comme l'absence de so...
- Richard Liu最近在央视《对话》节目上称,“财报显示按照美国会计准则京东去年亏损94亿元,但真正亏损额为8...
- Android编译针对方法数量有一个64K的限制,理论上是65535,在Android Studio编译打包的过程...