Day 36 贪心算法 part05 : 435. 无重叠区间 763.划分字母区间 56. 合并区间

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] 可被视为重叠区间。

提示:

  • 1 <= intervals.length <= 104
  • intervals[i].length == 2
  • 0 <= starti <= endi <= 104

通过次数

701.1K

提交次数

1.4M

通过率

49.6%

python 复制代码
class Solution(object):
    def merge(self, intervals):
        """
        :type intervals: List[List[int]]
        :rtype: List[List[int]]
        time: O(nlogn) 主要由排序操作决定,其中 n 是区间的个数。
        space: O(n) 用于存储结果区间。
        """

        result = []

        # base case: 区间集合为空直接返回
        if not intervals:
            return result  

        # 按区间的起始点进行排序
        intervals.sort(key=lambda x: x[0])

        result.append(intervals[0])  # 第一个区间可以直接放入结果集中 

        for i in range(1, len(intervals)):
            current_start, current_end = intervals[i]
            last_start, last_end = result[-1]

            # 如果当前区间与结果列表中的最后一个区间不重叠,则将当前区间添加到结果列表中
            if current_start > last_end:
                result.append([current_start, current_end]) # intervals[i]也可以
            else:
                # 否则,合并这两个区间
                # 合并只需更新结果集最后一个区间的右边界,因为根据排序,左边界已经是最小的
                result[-1][1] = max(current_end, last_end)
                
        return result 
相关推荐
双叶83625 分钟前
(Python)文件储存的认识,文件路径(文件储存基础教程)(Windows系统文件路径)(基础教程)
开发语言·windows·python
我就是全世界27 分钟前
Faiss中L2欧式距离与余弦相似度:究竟该如何选择?
算法·faiss
boyedu30 分钟前
比特币运行机制全解析:区块链、共识算法与数字黄金的未来挑战
算法·区块链·共识算法·数字货币·加密货币
枫昕柚1 小时前
python
开发语言·python
木头左1 小时前
自动驾驶领域中的Python机器学习
python·机器学习·自动驾驶
Dxy12393102161 小时前
Python Requests-HTML库详解:从入门到实战
开发语言·python·html
seasonsyy1 小时前
2.安装CUDA详细步骤(含安装截图)
python·深度学习·环境配置·cuda
KarrySmile1 小时前
Day04–链表–24. 两两交换链表中的节点,19. 删除链表的倒数第 N 个结点,面试题 02.07. 链表相交,142. 环形链表 II
算法·链表·面试·双指针法·虚拟头结点·环形链表
写点什么啦1 小时前
一键修复ipynb,Jupyter Notebook损坏文件
ide·python·jupyter
花开富贵ii1 小时前
代码随想录算法训练营二十八天|动态规划part01
java·数据结构·算法·leetcode·动态规划