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

【LeetCode热题100】--56.合并区间

56.合并区间

image-20230922153001176

排序:
如果按照区间的左端点排序,那么在排完序的列表中,可以合并的区间一定是连续的,如下图所示,标记为蓝色、黄色和绿色的区间分别可以合并为一个大区间,它们在排完序的列表中是连续的

image-20230922153201993

算法:

使用数组merged存储最终的答案

首先,将列表中的区间按照左端点升序排序,然后我们将第一个区间加入merged数组中,并按顺序依次考虑之后的每个区间:

  • 如果当前区间的左端点在数组merged中最后一个区间的右端点之后,那么它们不会重合,我们可以直接将这个区间加入数组merged的末尾
  • 否则,它们重合,需要用当前区间的右端点更新数组merged中最后一个区间的右端点,将其设置二者的较大值
class Solution {public int[][] merge(int[][] intervals) {if(intervals.length == 0){return new int[0][2];}Arrays.sort(intervals,new Comparator<int[]>() {public int compare(int[] interval1,int[] interval2){return interval1[0] - interval2[0];}});List<int[]> merged = new ArrayList<int[]>();for(int i= 0;i<intervals.length;i++){int L = intervals[i][0],R = intervals[i][1];if(merged.size() == 0 || merged.get(merged.size()-1)[1] < L){merged.add(new int[]{L,R});}else{merged.get(merged.size() -1 )[1] = Math.max(merged.get(merged.size()-1)[1],R);}}return merged.toArray(new int[merged.size()][]);}
}
http://www.lryc.cn/news/175411.html

相关文章:

  • opencv dnn模块 示例(17) 目标检测 object_detection 之 yolo v5
  • 关于安卓SVGA浅尝(一)svgaplayer库的使用
  • 【LFU】一文让你弄清 Redis LFU 页面置换算法
  • Python爬虫实战:用简单四步爬取小红书图片
  • 行为型模式-解释器模式
  • Linux系统编程(五):信号
  • 学习路之工具--SecureCRT的下载、安装
  • 软件定义网络-OpenvSwitch
  • Android Update Engine 分析(二十三)如何在升级后清除用户数据?
  • 分享从零开始学习网络设备配置--任务3.7 使用动态路由RIPv2实现网络连通
  • 游戏录屏软件推荐,教你录制高清游戏视频
  • 四川眼科医院孙丰源教授团队为患者拔除1.4cm长“眼中钉”
  • PHP 初学 GO 学习笔记
  • 前端制作
  • 扩散模型:DDPM代码的学习(基于minist数据集)
  • 小程序-uniapp:URL Link / 适用于在移动端 从短信、邮件、微信外网页 等场景打开小程序任意页面
  • 干货 | 基于在线监控数据的非现场监管问题识别模型研究
  • Spring Cloud Alibaba Gateway 简单使用
  • 两种fifo实现方式的差异
  • 孜然单授权系统V1.0[免费使用]
  • kubernetes问题(一)-异常事件
  • Android Jetpack组件架构 :LiveData的使用和原理
  • 【学习笔记】Prufer序列
  • 由于找不到msvcr110.dll的5种解决方法
  • 最长连续递增子序列
  • Java学习星球,十月集训,五大赛道(文末送书)
  • 前端VUE---JS实现数据的模糊搜索
  • Android Studio 的android.jar文件在哪儿
  • Elasticsearch 部署学习
  • nodejs 如何在npm发布自己的包 <记录>