• [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

  • 相关阅读:
    开源数据库
    深度学习TensorFlow笔记——学习率
    深度学习TensorFlow笔记——损失函数
    深度学习TensorFlow笔记
    Oracle常用内置函数
    Oracle数据库自带表或者视图
    Oracle数据库查询所有关键字
    IP代理网址
    时间、日历(time、calendar、datatime)
    selenium常用操作
  • 原文地址:https://www.cnblogs.com/chruny/p/4969074.html
Copyright © 2020-2023  润新知