以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。
classSolution(object):defmerge(self,intervals):""" :type intervals: List[List[int]] :rtype: List[List[int]] """intervals.sort(key=lambdax:x[0])res=[]forintervalinintervals:ifnotres:res.append(interval)else:last_start,last_end=res[-1]curr_start,curr_end=intervalifcurr_start<=last_end:res[-1]=[last_start,max(last_end,curr_end)]else:res.append(interval)returnres把数组按照元素的起点排序。
存放结果的数组,如果将要排序的元素的起点大于结果数组的终点,就要考虑重叠->合并。
合并的时候,需要选大的当终点。
如果小于的话,就可以直接加入结果数组。