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

数组题解——​合并区间【LeetCode】

56. 合并区间

  1. 排序
    • 将所有区间按起始位置 start 从小到大排序。
    • 这样,重叠的区间会相邻排列,方便后续合并。
  2. 合并
    • 初始化一个空列表 merged,用于存储合并后的区间。
    • 遍历排序后的区间列表:
      • 如果 merged 为空,或者当前区间与 merged 中最后一个区间不重叠,则将当前区间直接添加到 merged 中。
      • 否则,合并当前区间与 merged 中最后一个区间,更新 merged[-1][1] 为两者结束位置的最大值。
class Solution:def merge(self, intervals: List[List[int]]) -> List[List[int]]:# 1. 按照区间的起始位置进行排序intervals.sort(key=lambda x: x[0])# 2. 初始化一个空列表用于存储合并后的区间merged = []# 3. 遍历排序后的区间列表for interval in intervals:# 如果 merged 为空,或者当前区间与 merged 中最后一个区间不重叠if not merged or merged[-1][1] < interval[0]:# 将当前区间直接添加到 merged 中merged.append(interval)else:# 否则,合并当前区间与 merged 中最后一个区间merged[-1][1] = max(merged[-1][1], interval[1])# 4. 返回合并后的区间列表return merged

时间复杂度分析

  1. 排序:时间复杂度为 O(n log n),其中 n 是区间的数量。
  2. 遍历合并:时间复杂度为 O(n)
  • 总时间复杂度为 O(n log n)

 空间复杂度分析

  • 使用了额外的列表 merged 存储结果,空间复杂度为 O(n)

相关文章:

  • 网站收录查询站长工具网站友情链接的作用
  • 做外贸网站租什么服务器苏州首页排名关键词优化
  • 网站建设结课论文网络优化大师
  • 小区住宅可以注册公司吗黑帽seo是作弊手法
  • 怎样修改手机网站首页全网推广费用
  • 高密做网站哪家好代理优化设计
  • Python 猜数字小游戏:Tkinter 实现的互动猜数挑战
  • json.decoder.JSONDecodeError: Unexpected UTF-8 BOM (decode using utf-8-sig)
  • 【计算机组成原理01】:主存与Cache的地址映射
  • 【Docker基础】Docker容器管理:docker stop详解
  • 洛谷 删数的问题 贪心
  • C/C++库开发完全指南:从静态库到动态链接的深度解析
  • Unity反射机制
  • 【Linux网络与网络编程】15.DNS与ICMP协议
  • 报错:macOS 安装 sentencepiece
  • VIVADO导出仿真数据到MATLAB中进行分析
  • Spring Boot 中整合 Redis
  • 防御OSS Bucket泄露:RAM权限策略+日志审计+敏感数据扫描三重防护
  • 10.多进程服务器端
  • 复制 生成二维码
  • 麒麟V10操作系统离线安装Docker、Docker compose和1Panel
  • 鸿蒙 Stack 组件深度解析:层叠布局的核心应用与实战技巧
  • 6.24_JAVA_微服务_Elasticsearch搜索
  • 用Rust写平衡三进制加法器
  • 华为云Flexus+DeepSeek征文|基于华为云Flexus Dify复用优秀 AI Agent 应用教程
  • TMS汽车热管理系统HILRCP解决方案