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

 

posted @ 2019-03-06 16:48  夜雨声入眠  阅读(102)  评论(0编辑  收藏  举报