原題地址:https://oj.leetcode.com/problems/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]
.
解題思路:先將區間按照每個start的值來排序,排好序以后判斷一個區間的start值是否處在前一個區間中,如果在前一個區間中,那么合並;如果不在,就將新區間添加。
代碼:
# Definition for an interval. # class Interval: # def __init__(self, s=0, e=0): # self.start = s # self.end = e class Solution: # @param intervals, a list of Interval # @return a list of Interval def merge(self, intervals): intervals.sort(key = lambda x:x.start) length=len(intervals) res=[] for i in range(length): if res==[]: res.append(intervals[i]) else: size=len(res) if res[size-1].start<=intervals[i].start<=res[size-1].end: res[size-1].end=max(intervals[i].end, res[size-1].end) else: res.append(intervals[i]) return res