-
用
ArrayList<int[]> merged = new ArrayList<>();来定义数组的list -
将数组进行排序
Arrays.sort(intervals,(a,b) -> Integer.compare(a[0],b[0])); -
如果前面的末尾>=后面的初始,那么新的currentInterval的末尾=这两个数组末尾的最大值,即
if(currentInterval[1]>=intervals[i][0]){
//res[i][0]=intervals[i][0];
currentInterval[1]=Math.max(intervals[i][1],currentInterval[1]);
} -
否则,新的currentInterval直接等于intervalsi;
-
循环结束之后,只是对最后一个区间进行了判断,但是没有加进merged中,因此要把最后一个区间加进去。
-
转换成数组形式
merged.toArray(new int[merged.size()][]);class Solution {
public int[][] merge(int[][] intervals) {
int len = intervals.length;
if(len == 0) {
return new int[0][0];
}//按照每个区间的起始值进行排序 Arrays.sort(intervals,(a,b) -> Integer.compare(a[0],b[0])); ArrayList<int[]> merged = new ArrayList<>(); int[] currentInterval = intervals[0]; //int[][] res = new int[len][intervals[len-1].length]; for(int i =1; i<len;i++){ // res[i][0]=intervals[i][0]; // res[i][1]=intervals[i][1]; if(currentInterval[1]>=intervals[i][0]){ //res[i][0]=intervals[i][0]; currentInterval[1]=Math.max(intervals[i][1],currentInterval[1]); }else{ merged.add(currentInterval); currentInterval = intervals[i]; } } // 添加最后一个区间 merged.add(currentInterval); return merged.toArray(new int[merged.size()][]); }}
leetcode 合并区间 java
咪嗷喵挖藕哇2025-05-21 22:45
相关推荐
wangbing112543 分钟前
springboot应用关闭时触发动作weixin_460443564 小时前
2026年新修订《网络安全法》实施:Java私有化考试系统如何做好SBOM、漏洞治理与安全升级?海鸥-w7 小时前
什么是AOPCc.Y7 小时前
Java零基础入门:可变字符串与包装类:StringBuilder、StringBuffer 与 通讯录管理系统实战启观川7 小时前
数据结构与算法 -第 3 章 常用算法-动态规划码爸7 小时前
排序算法介绍paopaokaka_luck7 小时前
基于springboot+vue的智慧家政管理系统(AI问答、 WebSocket实时沟通、ECharts运营分析、订单规则与服务追踪)sm_926787057 小时前
RFID 标签打印的技术实现要点与二次开发实践阿森_dev7 小时前
2027 届毕设选题怎么选:30 个 Java 方向选题的实现难度排序Sarvartha8 小时前
Lambda 表达式和函数式接口