合并区间--Merge Intervals
https://leetcode.com/problems/merge-intervals/
Merge Intervals
Given a collection of intervals, merge all overlapping intervals.
For example,
Given [1,3],[2,6],[8,10],[15,18]
,
return [1,6],[8,10],[15,18]
.
题意:合并简化区间列
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 # @param {Interval[]} intervals 9 # @return {Interval[]} 10 def merge(self, intervals): 11 intervals.sort(key=lambda x:x.start) #注意形式,按区间左边数排序 12 length=len(intervals) #区间总个数 13 res=[] 14 for i in range(length): #用i对每一个区间依次遍历,进行处理 15 if res==[]: #第一个区间直接加入 16 res.append(intervals[i]) 17 else: 18 size=len(res) #找到已有区间列res的最后一个区间res[size-1] 19 if res[size-1].start<=intervals[i].start<=res[size-1].end: #别忘了两边的等号 20 res[size-1].end=max(intervals[i].end,res[size-1].end) #只更新右区间,左仍用res[size-1].start 21 else: 22 res.append(intervals[i]) #若左区间不包含在前一个区间里,则直接加入 23 return res