LeetCode热题100-合并区间

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

因为需要合并所有重叠的区间,所以排序后可以让重叠的区间放到一起。当前区间的左边界小于等于前一个区间的右边界时存在重叠,所以进行合并,这里合并是最好取一下左边界。

python 复制代码
class Solution:
    def merge(self, intervals: List[List[int]]) -> List[List[int]]:
        intervals.sort()

        res = []

        for interval in intervals:
            if not res:
                res.append(interval)
            else:
                last = res[-1]
                if interval[0] <= last[1]:
                    # 当前区间的左 <= 最后区间的右 → 重叠,要合并
                    res[-1] = [min(last[0], interval[0]), max(interval[1], last[1])]
                else:
                    res.append(interval)
        
        return res
相关推荐
夜不会漫长10 小时前
C++入门(1)
开发语言·c++·算法
wen_zhufeng11 小时前
IndexTTS 2.5 技术报告
人工智能·算法·机器学习
ITmaster073111 小时前
天天 AI Coding 的你,如果出去面试,你的竞争力是什么?
人工智能·面试·职场和发展
大熊背11 小时前
树莓派相机自动白平衡详解(四)
算法·树莓派·白平衡·isppipeline
一米阳光866112 小时前
软考(中级)软件设计师核心笔记(9)算法——背包问题
笔记·算法·职场发展·软考·软件设计师·中级职称
晚风醉蝶12 小时前
1-11-奇偶排序-OddEvenSort
java·数据结构·算法
旖旎夜光12 小时前
LeetCode 852:山脉数组的峰顶索引(二分查找) —— 题解
数据结构·c++·算法·leetcode·二分查找
..Dauntless..12 小时前
【C++】继承——基类和派生类的配合
开发语言·c++·算法
HY小宝F12 小时前
树莓派 FFmpeg 实战笔记(二):命令行、源码编译与硬件编码的真相
学习·职场和发展·ffmpeg
程序员三藏13 小时前
浅谈性能测试
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·性能测试