9.合并区间
给出一个区间的集合,请合并所有重叠的区间。
示例一:
输入: [[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] 可被视为重叠区间。本题首先对区间进行排序,然后如果当前的区间的最大值大于等于下一区间的最小值,则最大值等于当前区间的最大值与下一区间最大值中的最大值。第一次写的代码如下:
class Solution(object): def merge(self, intervals): """ :type intervals: List[List[int]] :rtype: List[List[int]] """ intervals[:]=sorted(intervals,key=lambda x:x[0]) res =[] for i in range(len(intervals)): if i第二次写的代码如下:=intervals[i+1][0]: tmp = [intervals[i][0],max(intervals[i][1],intervals[i+1][1])] intervals[i+1]=tmp else: res.append(intervals[i]) else: res.append(intervals[i]) return res
class Solution(object): def merge(self, intervals): """ :type intervals: List[List[int]] :rtype: List[List[int]] """ intervals.sort() i = 0 while i=intervals[i+1][0]: intervals=intervals[:i]+[[min(intervals[i][0],intervals[i+1][0]),max(intervals[i][1],intervals[i+1][1])]]+intervals[i+2:] else: i+=1 return intervals