zoukankan      html  css  js  c++  java
  • [LeetCode]题解(python):056-Merge Intervals

    题目来源:

      https://leetcode.com/problems/merge-intervals/


    题意分析:

      给定一连串的间隔,将有交叉的间隔整合起来。比如:给出[[1,3],[2,4]]那么应该返回[[1,4]]。要注意的是类似[[1,2],[2,3]]也要整合成[[1,3]]。


    题目思路:

      首先将间隔排序,接着从头开始,如果发现前一个的最后不小于后一个的第一个,那么将这两个整合成一个新的间隔。也就是if tmp.end <= intervals[i].start: tmp.end = max(tmp.end,intervals[i].end)。


    代码(python):

      

    # Definition for an interval.
    # class Interval(object):
    #     def __init__(self, s=0, e=0):
    #         self.start = s
    #         self.end = e
    
    class Solution(object):
        def merge(self, intervals):
            """
            :type intervals: List[Interval]
            :rtype: List[Interval]
            """
            intervals.sort(key = lambda interval : interval.start)
            ans,size = [],len(intervals)
            if size == 0:
                return ans
            tmp = intervals[0]
            for i in intervals:
                if i.start <= tmp.end:
                    tmp.end = max(i.end,tmp.end)
                else:
                    ans.append(tmp)
                    tmp = i
            ans.append(tmp)
            return ans
    View Code

    转载请注明出处:http://www.cnblogs.com/chruny/p/4969074.html

  • 相关阅读:
    20150607-0608
    20150423
    感触
    NSString里面的数字
    Git使用相关
    状态栏的设置
    UI相关问题
    分栏(标签)控制器
    导航控制器
    NSAttributedString 属性
  • 原文地址:https://www.cnblogs.com/chruny/p/4969074.html
Copyright © 2011-2022 走看看