zoukankan      html  css  js  c++  java
  • 56. Merge Intervals

    """
    56. Merge Intervals
    Medium
    1483
    116
    Favorite
    Share
    Given a collection of intervals, merge all overlapping intervals.

    Example 1:

    Input: [[1,3],[2,6],[8,10],[15,18]]
    Output: [[1,6],[8,10],[15,18]]
    Explanation: Since intervals [1,3] and [2,6] overlaps, merge them into [1,6].
    Example 2:

    Input: [[1,4],[4,5]]
    Output: [[1,5]]
    Explanation: Intervals [1,4] and [4,5] are considered overlapping.
    """

    给你一堆区间,让你将这些区间合并

    首先将这些区间按照start升序排列

    然后从前向后比如两个区间[a,b],[c.,d],因为已经排过序了,所以a<=c的,比较bc如果b<c那么就是两个分开的区间;反之就是可以合并的区间,区间的后端应该取c,d的较大值

    上代码

    # Definition for an interval.
    # class Interval:
    #     def __init__(self, s=0, e=0):
    #         self.start = s
    #         self.end = e
    
    class Solution:
        def merge(self, intervals):
            """
            :type intervals: List[Interval]
            :rtype: List[Interval]
            """
            intervals_len = len(intervals)
            if intervals_len < 2:
                return intervals
            intervals.sort(key=lambda i: i.start)
            result = []
            result.append(intervals[0])
            for i in range(1, intervals_len):
                tmp = intervals[i]
                if result[-1].end < tmp.start:
                    result.append(tmp)
                else:
                    result[-1].end = max(result[-1].end, tmp.end)
            return result
  • 相关阅读:
    Element-ui 复选框使用问题
    脚手架 oss 直传
    门外汉 avue使用
    cookie关闭浏览器清除
    关于(Incorrect string value: 'xF0x9Fx8ExBE' for column 'xxx' at row)报错
    扫码登录
    微信支付
    vue 腾讯地图 javaScriptAPI GL 多个markers自适应 (3)
    vue props 一次性传多个值
    vuex 的简单使用
  • 原文地址:https://www.cnblogs.com/mangmangbiluo/p/10107749.html
Copyright © 2011-2022 走看看