標籤:
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].start21 else:22 res.append(intervals[i]) #若左區間不包含在前一個區間裡,則直接加入23 return res
合并區間--Merge Intervals