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

leetcode56.合并区间

以数组 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

解法:

1、第一个区间的右边界(5)在第二个区间之间(4, 6),则要更新第一个区间的右边界为6;

2、第一个区间的右边界(3)小于第二个区间的左边界(4),则将第二个区间作为新增区间;

3、第一个区间的右边界(8)大于第二个区间的右边界(6),则第一个区间保持不变,第二个区间被忽略;

/** * Return an array of arrays of size *returnSize. * The sizes of the arrays are returned as *returnColumnSizes array. * Note: Both returned array and *columnSizes array must be malloced, assume caller calls free(). */ int CompareInt(const void* a, const void* b) { int* x = *(int**)a; int* y = *(int**)b; if (x[0] != y[0]) { return x[0] - y[0]; } return (x[1] - y[1]); } int** merge(int** intervals, int intervalsSize, int* intervalsColSize, int* returnSize, int** returnColumnSizes) { // qsort qsort(intervals, intervalsSize, sizeof(intervals[0]), CompareInt); int** res = (int**)malloc(sizeof(int) * intervalsSize * 2); *returnColumnSizes = malloc(sizeof(int) * intervalsSize); for (int i = 0; i < intervalsSize; i++) { res[i] = (int*)malloc(sizeof(int) * 2); } res[0] = intervals[0]; (*returnColumnSizes)[0] = 2; int cnt = 0; for (int i = 1; i < intervalsSize; i++) { if (intervals[i][0] <= res[cnt][1]) { if (intervals[i][1] > res[cnt][1]) { res[cnt][1] = intervals[i][1]; } } else { cnt++; res[cnt] = intervals[i]; } (*returnColumnSizes)[cnt] = 2; } // go through all the element and get array *returnSize = cnt + 1; return res; }
http://www.jsqmd.com/news/94888/

相关文章:

  • C#字典操作全攻略与var定义变量
  • 基于python的房产交易服务平台的设计与实现(源码+lw+远程部署)
  • 2024年提示工程架构师必看:用户参与研究的最新趋势,提升提示设计效果
  • 将结果按字典或元组格式输出
  • Informed RRT*实现椭圆启发式采样
  • 千匠网络B2B商城系统:赋能渠道数字化升级的全链路智能解决方案
  • 2026毕设ssm+vue基于防返贫政策的贫苦户信息管理系统论文+程序
  • 整体设计 之28 整体设计 架构表表述总表的 完整程序(之27 的Q268 )(codebuddy)
  • Windows剪贴板的超级增强器,提升你的工作效率
  • 全国男生哄对象的 9 句 “保命金句”,听完气消一半!
  • 云手机在教育领域中的作用
  • 解放生产力!斯坦福让多智能体学会“自主优化”,告别繁琐配置,AI团队自己“找最优解”
  • 三菱FX5U PLC与扫码枪的串口通讯方案分享
  • NOIP 2025 题解
  • zz 分析self Attention为何除根号d以及softmax的求导和反向传播
  • Google广告成本飙升?3个着陆页优化技巧质量得分突破
  • 飞控开发——熟悉uORB
  • 先看段有意思的代码,这是Matlab里魔术公式的典型实现
  • 基于区块链的房产交易服务平台的设计与实现(源码+lw+远程部署)
  • VB编程的现代实践:从经典到创新的全面指南
  • 策略路由实验配置
  • 怎么清洗角膜塑形镜才有效?
  • 配置静态或默认或动态路由
  • kotin基础语法汇总
  • 基于SpringBoot框架的房产交易服务平台的设计与实现(源码+lw+远程部署)
  • 卿语霖:在读研究生的AI产品经理转型之路 —— 多元规划,赢取头部企业Offer
  • 交通灯,红绿灯,plc交通灯,十字路口交通灯,三菱PlC程序+GT触摸屏程序+电气接线图+Io分配表
  • 狂中Nature子刊!CNN-LSTM做时间序列预测火力全开,思路非常上头!
  • STL deque 的详细特征
  • JavaScript 性能优化实战:从 3 秒到 300 ms 的压缩与缓存之旅 - 教程