56. 合并区间

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

示例 1:

输入:intervals = [[1,3],[2,6],[8,10],[15,18]]
输出:[[1,6],[8,10],[15,18]]
解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].

示例 2:

输入:intervals = [[1,4],[4,5]]
输出:[[1,5]]
解释:区间 [1,4] 和 [4,5] 可被视为重叠区间。

思路:重叠区间的判断问题,首先对intervals按起始位置排序,然后判断相邻两个区间是否有重叠,若有重叠,合并两个区间,怎么合并呢,起始位置取更小的那个,结束位置取更大的值,然后更新新区间,和下一个区间继续去判断;若没有重叠,将上一个区间放入结果result。注意最后一个区间,他后面没有区间了,按照我们的方法它不会被放入,所以最后单独把最后一个区间放入。

代码(Python):

class Solution(object):
    def merge(self, intervals):
        result = []
        intervals = sorted(intervals)               #对数组排序
        for i in range(1,len(intervals)):
            if intervals[i][0] <= intervals[i-1][1]:     #若有重叠,更新该区间
                intervals[i][0] = min(intervals[i][0],intervals[i-1][0])
                intervals[i][1] = max(intervals[i][1],intervals[i-1][1])
            else:                                        #若没有重叠,将上一个区间放入result
                result.append(intervals[i-1])
        result.append(intervals[len(intervals)-1])      #将最后一个区间放入result
        return result

相关推荐

  1. LeetCode 56 合并区间

    2024-07-14 11:16:02       55 阅读
  2. LeetCode56.合并区间

    2024-07-14 11:16:02       44 阅读
  3. Leetcode56_合并区间

    2024-07-14 11:16:02       35 阅读
  4. leetcode56--合并区间

    2024-07-14 11:16:02       17 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 11:16:02       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 11:16:02       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 11:16:02       57 阅读
  4. Python语言-面向对象

    2024-07-14 11:16:02       68 阅读

热门阅读

  1. 微服务架构,通信协议,Web服务器和kafka

    2024-07-14 11:16:02       19 阅读
  2. 【学习笔记】Redis学习笔记——第9章 数据库

    2024-07-14 11:16:02       25 阅读
  3. 基于gunicorn+flask+docker模型高并发部署

    2024-07-14 11:16:02       22 阅读
  4. 求助大佬——期末考试评分标准(浙大)C语言

    2024-07-14 11:16:02       26 阅读
  5. 如何解决数据分析问题:IPython与Pandas结合

    2024-07-14 11:16:02       17 阅读
  6. 【团队成长】2024-28周周报

    2024-07-14 11:16:02       23 阅读
  7. Mysql第八次作业

    2024-07-14 11:16:02       18 阅读
  8. SQLite DISTINCT 关键字

    2024-07-14 11:16:02       26 阅读
  9. 显式等待、隐式等待、强制等待

    2024-07-14 11:16:02       25 阅读
  10. HttpUtil工具

    2024-07-14 11:16:02       24 阅读
  11. 中文科技核心论文

    2024-07-14 11:16:02       23 阅读
  12. 解决npm install 安装报错记录贴

    2024-07-14 11:16:02       28 阅读