056 Merge Intervals

题目: 056 Merge Intervals

这道题和 057 基本相似, 想法更加直接, 对start 进行排序,然后扫描一次并跟新返回的答案

class Solution:
    # @param {Interval[]} intervals
    # @return {Interval[]}
    def merge(self, intervals):
        ans = []
        for i in sorted(intervals, key=lambda i:i.start):
            if ans and ans[-1].end >= i.start:
                ans[-1].end = max(ans[-1].end, i.end)
            else:
                ans.append(i)
        return ans

 

posted @ 2015-07-14 08:20  dapanshe  阅读(77)  评论(0编辑  收藏  举报