-
用
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直接等于intervals[i];
-
循环结束之后,只是对最后一个区间进行了判断,但是没有加进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
相关推荐
半桶水专家8 分钟前
C语言中的setitimer函数详解失散139 分钟前
分布式专题——26 BIO、NIO编程与直接内存、零拷贝深入辨析-雷阵雨-34 分钟前
数据结构——栈和队列(模拟实现)祈祷苍天赐我java之术1 小时前
Redis 热点数据与冷数据解析9号达人1 小时前
Java20 新特性详解与实践FS_tar1 小时前
高斯消元矩阵sniper_fandc2 小时前
关于Mybatis-Plus的insertOrUpdate()方法使用时的问题与解决—数值精度转化问题小蝙蝠侠2 小时前
安德烈·卡帕西:深入探索像ChatGPT这样的大语言模型内容列表闻缺陷则喜何志丹2 小时前
【贪心之临项交换】P8732 [蓝桥杯 2020 国 ABC]|普及天若有情6732 小时前
Spring配置文件XML验证错误全面解决指南:从cvc-elt.1.a到找不到‘beans‘元素声明