先把区间按照起点排序
区间相交的定义是当前区间的起点小于前面区间的终点
所以如果相交就更新相交区间的终点为当前可以合并区间的最大值
不相交就将前一个区间加入答案,并且更新新的起点与终点进行下一轮比较
def merge(self, intervals):
"""
:type intervals: List[List[int]]
:rtype: List[List[int]]
"""
intervals.sort()
n = len(intervals)
left = intervals[0][0]
right = intervals[0][1]
res = []
for i in range(1,n):
if intervals[i][0] <= right:
right = max(right,intervals[i][1])
else:
res.append([left,right])
left = intervals[i][0]
right = intervals[i][1]
res.append([left,right])
return res