
算法思想
首先进行排序,排序的标准是区间的开始,
然后将区间连起来就行,当start小于end的时候,才需要连区间,但是end要取两个区间的最大值。
class Solution:
def merge(self, intervals: List[Interval]) -> List[Interval]:
if intervals == []:
return []
intervals = sorted(intervals, key=lambda x : x.start)
results = [intervals[0]]
for i in range(1, len(intervals)):
if intervals[i].start <= results[-1].end:
results[-1].end = max(intervals[i].end, results[-1].end)
else:
results.append(intervals[i])
return results

本文详细介绍了一种用于合并重叠区间的高效算法。首先对区间按起始位置进行排序,然后遍历每个区间,通过比较当前区间的起始位置与已合并区间末尾的位置来决定是否合并。若当前区间的起始位置小于等于已合并区间的末尾位置,则更新已合并区间的末尾位置为两者中的较大值;否则,将当前区间加入到结果列表中。此算法适用于解决一系列涉及区间合并的问题。
150

被折叠的 条评论
为什么被折叠?



