day-40 合并区间

embedded/2024/10/9 13:30:10/

在这里插入图片描述
思路
将二维数组按照第一列升序排列,把intervals[0][0]作为第一个区间的起点,将
intervals[0][1]和intervals[1][0]进行比较,如果intervals[0][1]<intervals[1][0],则不能合并,否则可以合并,将Math.max(intervals[position][1],intervals[position+1][1])作为临时右端点,依次类推

解题过程
注意: 要写为list.add(new ArrayList§),如果list.add§这样,p.clear()会清空数据

Code

class Solution {public  List<List<Integer>> list=new ArrayList<>();public  int row;public int[][] merge(int[][] intervals) {Arrays.sort(intervals,(a,b)->a[0]-b[0]);//二维数组中每行数组中的第一个数按从小到大的顺序进行排列row=intervals.length;List<Integer> p=new ArrayList<>();p.add(intervals[0][0]);method(p,0,intervals);int ans[][]=listTo2DArray(list);return ans;}public void method(List<Integer> p,int position,int[][] intervals){if(position+1==row){    //最后一行p.add(intervals[position][1]);list.add(p);}else{if(intervals[position][1]>=intervals[position+1][0]){intervals[position+1][1]=Math.max(intervals[position][1],intervals[position+1][1]);method(p,position+1,intervals);}else{p.add(intervals[position][1]);list.add(new ArrayList(p));p.clear();p.add(intervals[position+1][0]);method(p,position+1,intervals);}}}public static int[][] listTo2DArray(List<List<Integer>> listOfLists) {int rows = listOfLists.size();int cols = 0;for (List<Integer> list : listOfLists) {cols = Math.max(cols, list.size()); // 获取最大列数}int[][] twoDimArray = new int[rows][cols];for (int i = 0; i < rows; i++) {List<Integer> rowList = listOfLists.get(i);for (int j = 0; j < rowList.size(); j++) {twoDimArray[i][j] = rowList.get(j);}}return twoDimArray;}
}作者:菜卷
链接:https://leetcode.cn/problems/merge-intervals/solutions/2893781/he-bing-qu-jian-by-ashi-jian-chong-dan-l-0mr3/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

http://www.ppmy.cn/embedded/101414.html

相关文章

基于计算机视觉的图书推荐应用【AI编程实录】

我相信这篇文章的许多读者都有一个“抽屉”&#xff0c;里面装满了未完成的很酷的业余项目。由于AI每天都在帮助我的团队编写代码&#xff0c;我决定试一试&#xff0c;看看它能让我在一个我最喜欢的业余项目中走多远&#xff0c;最好是用最少的代码编写。 由于我对它能走多远…

Mysql集群相关技术

目录 一、源码部署mysql 1.1 下载源码包 1.2 安装部署 二、mysql 的主从复制 2.1 在master上配置 2.2 在slave上的配置 2.3 测试 2.4 延迟复制 2.5 慢查询日志 2.6 mysql的并行复制 2.7 原理剖析 2.8 架构缺陷 三、半同步模式 3.1半同步模式原理 3.2 gtid模式 …

NLP -->定义、应用、与职业前景解析

1. 自然语言处理&#xff08;NLP&#xff09;的定义与误区 定义: 自然语言处理主要集中于文本的处理&#xff0c;旨在使计算机能够理解和生成自然语言文本。常见误区: 初学者容易将自然语言处理与语音识别混淆。 语音识别: 将语音转成文字&#xff0c;这不属于自然语言处理范畴…

DNS详解

DNS详解 DNS 是一个域名系统&#xff0c;它主要用于将人类容易记忆的域名转换成ip地址。 默认情况下&#xff0c;设备会自动从网络供应商获取DNS服务器地址&#xff0c;并使用DNS服务器对域名进行解析。 此外&#xff0c;你也可以手动设置DNS服务器&#xff0c;具体操作系统…

nginx知识补充

文章目录 一、正、反向代理服务器正向代理服务器&#xff08;Forward Proxy&#xff09;反向代理服务器&#xff08;Reverse Proxy&#xff09;正向代理与反向代理的主要区别总结 二、nginx的四、七层反向代理七层反向代理&#xff08;Layer 7 Proxy&#xff09;四层反向代理&a…

【YOLOv8改进[Conv]】 感受野注意力卷积RFAConv(2024.3)| 使用RFAConv改进目标检测效果 + 含全部代码和详细修改方式

本文将进行在YOLOv8中使用 感受野注意力卷积RFAConv改进v8 的实践,助力YOLOv8目标检测效果,文中含全部代码、详细修改方式。助您轻松理解改进的方法。

解决执行npm run dev报错node: --openssl-legacy-provider is not allowed in NODE_OPTIONS

问题&#xff1a; 最近下载了一个开源系统&#xff0c;执行npm install很顺利&#xff0c;以为大功告成&#xff0c;结果运行npm run dev时报错node: --openssl-legacy-provider is not allowed in NODE_OPTIONS 解决方法&#xff1a; 应用程序配置&#xff08;package.json&a…

UE4编安卓时Core模块为何只include Android文件夹?

Core模块 Core模块是整个引擎中最核心的模块。几乎UE4中的每个其他模块都导入Core。Engine\Source\Runtime\Core\Private下有很多文件夹&#xff0c;下面罗列一部分&#xff1a; G:\St\EngineSource\Engine\Source\Runtime\Core\Private 的目录 2024/07/18 12:02 <DIR…