当前位置: 首页 > news >正文

【leetcode复健-12】56. 合并区间-排序

56. 合并区间 - 力扣(LeetCode)

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

示例 3:

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

提示:

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

题目分析

给定一串区间,要求我们合并所有有交集的区间,并返回最终所有最终合并的区间。
这题合并区间的思路非常好想,对于两个有交集的区间,左边界取最小,右边界取最大即可。
这题的难点在于给定的区间是无序的,这就导致我们很难匹配出具有交集的区间。解决办法其实非常简单。既然无序的区间查找起来很困难,那我们只需要让他们变得有序即可。

解决思路

我们按照每个区间的左边界进行排序,只需要使用.sort() 加 lambda 表达式就可以完成,之后遍历我们只需要关心相邻两个区间的右边界与左边界大小关系即可。
使用一个列表存放我们最总的合并区间,对于排序后的列表的相邻两个区间,如果左区间的右端点小于有区间左端点则将当前区间存入最终答案,开始合并下一个区间。

代码展示

class Solution: def merge(self, intervals: List[List[int]]) -> List[List[int]]: intervals.sort(key=lambda x: x[0]) # 按左端点排序 merged = [intervals[0]] # 第一个区间直接入结果 for s, e in intervals[1:]: if s <= merged[-1][1]: # 与最后一个已合并区间重叠 merged[-1][1] = max(merged[-1][1], e) # 只扩右端点 else: # 彻底断开 merged.append([s, e]) return merged
http://www.jsqmd.com/news/1397321/

相关文章:

  • 在线Windows鼠标主题转换器:ANI到XCUR格式转换原理与实现
  • 数学建模期末复习:攻克多选题的策略与核心考点解析
  • 把碧蓝航线的每日重复劳动交给托管脚本,一个月能省下多少时间
  • 神经网络激活函数全解析:从ReLU到GELU,如何选择与优化
  • Lenovo Legion Toolkit上手路线图:拯救者性能优化与硬件调校完整教程
  • Next.js 全栈实战:拆解 RealWorld 项目——React SSR 入门
  • 2026-2027大模型五大技术趋势:智能体、推理优化与垂域模型
  • C++ STL六大组件深度解析:从容器算法到内存管理实战指南
  • 因为漏掉了一个错误导致浪费了6个小时
  • 奇点大会的可持续AI议题,技术团队能做什么
  • 宜宾装修公司怎么选?宜宾老胡装饰等本土装企综合参考与家装避坑指南 - 收录优先
  • 2026 年一禾装饰|淮北装修工作室怎么选,家装挑选要点解析 - 收录优先
  • SAP Gateway 的 Payload Trace 使用实战
  • B站视频下载完整指南:DownKyi免费开源工具,一键搞定批量下载与格式转换
  • 2026 年莱山装修公司怎么选?智云装饰聊聊本地家装避坑要点 - 收录优先
  • 苏州特证黄金回收优势,资质齐全交易可溯源维权 - 资讯早知道
  • macOS开发Python程序打包成Windows可执行文件全攻略
  • 手机取消内存卡背后的技术演进与商业逻辑
  • 手机都在自动工作-----真无聊
  • 把 OData 测试变成可重复回归测试,深入理解 SAP Gateway Client 的 Response Validation
  • NCM转MP3还要在线传文件?这款免费离线工具三步搞定批量转换
  • 告别后台偷跑:用LenovoLegionToolkit一键关闭Vantage与Legion Zone冗余进程
  • 杭州7城区黄金回收门店汇总,多家连锁实体比价,处置闲置黄金不踩坑 - 一刻涨新知
  • AI实战 : Numpy图像处理与深度学习框架
  • 【HTB-CPTS】第22章 Command Injections(测验部分)
  • Agent意图识别分层架构:从规则到大模型的完整设计与落地
  • 暑假一周总结:其六
  • 楼家泰防水分享:南宁多雨环境下防水修缮注意事项 - 收录优先
  • 学生必备:实测有效的免费AI降重工具与技巧
  • 手机秒变开发机:vscode_for_android 本地部署完整实战指南