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
  • 相关阅读:
    sort exam
    一个简单的爬虫
    php双色球
    计算水果的总价格
    jquery三级导航,级联菜单精简
    判断学生成绩
    服务器信息展示
    服务器信息(二)一些常量名和时间戳的简单了解
    天气预报ajax+php(可惜用的是已经失效的api)
    mysql基础(二)
  • 原文地址:https://www.cnblogs.com/mangmangbiluo/p/10107749.html
Copyright © 2011-2022 走看看