leetcode -- 56.合并区间
给出一个区间的集合,请合并所有重叠的区间。
示例 1:
输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
示例 2:
输入: [[1,4],[4,5]] 输出: [[1,5]] 解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。
1 # Definition for an interval. 2 # class Interval: 3 # def __init__(self, s=0, e=0): 4 # self.start = s 5 # self.end = e 6 7 class Solution: 8 def merge(self, intervals): 9 """ 10 :type intervals: List[Interval] 11 :rtype: List[Interval] 12 """ 13 if not intervals:#如果集合为空,返回一个空的列表 14 return [] 15 res = [] 16 intervals.sort(key = lambda i: i.start)#把集合内的区间按开头数字的大小排序 17 for i in intervals: 18 if res == []:#如果res为空时,把集合的第一个区间加入 19 res.append(i) 20 if i.start<= res[-1].end <=i.end: 21 res[-1].end = i.end 22 elif i.start>res[-1].end: 23 res.append(i) 24 return res