区间合并
区间合并模式是一个用来处理有区间重叠的很高效的技术。在涉及到区间的很多问题中,通常需要判断区间是否有重叠,重叠的话则合并区间。- 给两个区间a和b。它们之间的关系能跑出来6种情况:

- 理解和识别这六种情况非常重要,这能帮你解决一大堆问题。
- 这些问题从插入区间到优化区间合并都有。
识别什么时候用合并区间模式呢?
- 当你需要产生一堆相互之间没有交集的区间的时候
- 当你听到重叠区间的时候
举例
给出一个区间的集合,请合并所有重叠的区间。
示例一
输入: [[1,3],[2,6],[8,10],[15,18]]
输出: [[1,6],[8,10],[15,18]]
解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
示例二
输入: [[1,4],[4,5]]
输出: [[1,5]]
解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。
# Definition for an interval.
# class Interval(object):
# def __init__(self, s=0, e=0):
# self.start = s
# self.end = e
class Solution(object):
def merge(self, intervals):
"""
:type intervals: List[Interval]
:rtype: List[Interval]
"""
if len(intervals) <= 1:
return intervals
res = []
intervals = sorted(intervals,key = lambda start: start[0])
l = intervals[0][0]
h = intervals[0][1]
for i in range(1,len(intervals)):
if intervals[i][0] <= h:
h = max(h,intervals[i][1])
else:
res.append([l,h])
l = intervals[i][0]
h = intervals[i][1]
res.append([l,h])
return res
区间合并是一种处理区间重叠的高效技术,常用于判断和合并有交集的区间。理解六个不同情况对于解决相关问题至关重要,如插入区间、优化合并等。在需要消除区间交集或处理重叠区间的问题时,此技术尤其适用。文中通过示例一和示例二进行详细解释。

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



