• [leetcode]Merge Intervals @ Python


    原题地址:https://oj.leetcode.com/problems/merge-intervals/

    题意:

    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:
    #     def __init__(self, s=0, e=0):
    #         self.start = s
    #         self.end = e
    
    class Solution:
        # @param intervals, a list of Interval
        # @return a list of Interval
        def merge(self, intervals):
            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
  • 相关阅读:
    性能测试系列七 工具选择
    Selenium Web自动化面试题总结(下篇)
    性能测试系列六 评估压测量
    hexo 安装
    光纤收发器组网方式
    频谱仪
    交换机网管telent
    区块链共识机制
    SDH、MSTP、OTN和PTN
    ACL知识
  • 原文地址:https://www.cnblogs.com/zuoyuan/p/3782028.html
Copyright © 2020-2023  润新知