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

LeetCode 56 - 合并区间

思路
  1. 排序:将所有区间按起始点从小到大排序。
  2. 贪心合并:初始化一个结果列表,放入第一个区间。然后遍历剩余区间,将当前区间与结果列表中的最后一个区间比较:
    • 重叠(当前区间起点 ≤ 结果区间终点),则更新结果区间的终点为两者终点的最大值。
    • 不重叠,则将当前区间直接加入结果列表。
C++ 代码实现
class Solution {
public:vector<vector<int>> merge(vector<vector<int>>& intervals) {if (intervals.size() <= 1) return intervals;sort(intervals.begin(), intervals.end());vector<vector<int>> merged;merged.push_back(intervals[0]);for (int i = 1; i < intervals.size(); ++i) {if (intervals[i][0] <= merged.back()[1]) {merged.back()[1] = max(merged.back()[1], intervals[i][1]);} else {merged.push_back(intervals[i]);}}return merged;}
};

注:sort 对于 vector<vector<int>> 默认按第一个元素排序,可省略 lambda。

复杂度
  • 时间复杂度: O(n log n),瓶颈在于排序。
  • 空间复杂度: O(n),用于存储返回结果。
http://www.lryc.cn/news/604614.html

相关文章:

  • 7. 传输层协议 TCP
  • 关系型数据库架构最优选择:基于落霞归雁思维框架的分析
  • 15.11 单卡训练770M参数模型!DeepSpeed ZeRO-3实战:RTX 4090显存直降6.8GB
  • 10 分钟上手 Elasticsearch 语义搜索(Serverless Cloud 本地双版本教程)
  • 基因组选择育种-2.1.最佳线性无偏估计
  • GitHub使用小记——本地推送、外部拉取和分支重命名
  • RPA软件推荐:提升企业自动化效率
  • STM32学习记录--Day3
  • IPEmotion数据采集软件功能介绍
  • 【n8n】如何跟着AI学习n8n【02】:基础节点学习
  • Java面试宝典:MySQL InnoDB引擎底层解析
  • 5.Origin2021如何绘制柱状+折线双Y轴图?
  • 51单片机外部引脚介绍
  • 影视级 3D 特效的软件工具链:从概念到成片的全流程解析
  • LAMP及其环境的部署搭建
  • 逻辑回归:从线性回归到分类决策的演化
  • Spring Boot音乐服务器项目-查询喜欢的音乐模块
  • .clang-format的作用是什么,什么情况下会生效
  • 常见cms里面的几个cms框架的webshell方法(wordpress,dedecms,phpmyadmin,pageadmin)
  • 91-基于Spark的空气质量数据分析可视化系统
  • neovim 怎么调用 clang-format进行格式化
  • 常⻅CMS漏洞
  • 《Flutter篇第二章》MasonryGridView瀑布流列表
  • 算法能力提升之快速矩阵
  • python反爬:一文掌握 undetected-chromedriver 的详细使用(可通过机器人验证)
  • Flutter封装模板及最佳实践
  • git本地仓库,工作区和暂存区的知识
  • 操作系统- lecture3(进程的定义)
  • RAG:检索增强生成的范式演进、技术突破与前沿挑战
  • 通义万相文生图模型wan2.2-t2i-flash和wan2.2-t2i-plus全维度深度对比