LeetCode||56. Merge Intervals

来源:互联网 发布:软件体验报告模板 编辑:程序博客网 时间:2024/06/07 17:19

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(object):#     def __init__(self, s=0, e=0):#         self.start = s#         self.end = eclass Solution(object):    def merge(self, intervals):        """        :type intervals: List[Interval]        :rtype: List[Interval]        """        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


原创粉丝点击