leetcode.array--56. Merge Intervals

来源:互联网 发布:mysql教学视频 百度云 编辑:程序博客网 时间:2024/05/26 22:58

题目:56. Merge Intervals

问题描述:https://leetcode.com/problems/merge-intervals/description/

题目意思呢,是要合并给出的区间组,并返回合并后的区间。例如:有区间组[[1,3],[2,6],[8,10],[15,18]],返回[[1,6],[8,10],[15,18]]。

我按照区间的起点升序排序,然后遍历一遍得到结果。这样时间复杂度是O(nlogn)。

Python:

from operator import attrgetterclass Solution(object):    def merge(self, intervals):        """        :type intervals: List[Interval]        :rtype: List[Interval]        """        length=len(intervals)        if length==0:            return []        if length<2:            return [intervals[0]]        intervals.sort(key=attrgetter("start"))        res=[]        res.append(intervals[0])        rear=0        for i in range(1,length):            if intervals[i].start<=res[rear].end:                if intervals[i].end>res[rear].end:                    res[rear].end=intervals[i].end            else:                res.append(intervals[i])                rear+=1        return res


原创粉丝点击