![]()
package my;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class MergeIntervals {
int[][] merge(int[][] intervals){
Arrays.sort(intervals,(i1,i2) ->i1[0]-i2[0]); //按照区间起始位置排序
// Arrays.sort(intervals,(v1,v2) -> Integer.compare(v1[0],v2[0]));
//定义一个previous变量,初始化为null
int[] previous = null;
//定义一个result变量,用来保存最终的区间结果
List<int[]> result = new ArrayList<>();
//从头开始遍历给定的所有区间
for(int[] current : intervals){
//如果这个是第一个区间,或者当前区间和前一个区间没有重叠,那么将当前区间加入到结果中
if(previous == null || current[0] > previous[1]){
result.add(previous = current);
}else{ //否则,两个区间发生了重叠,更新前一个区间的结束时间
previous[1] = Math.max(previous[1],current[1]);
}
}
return result.toArray(new int[result.size()][]);
}
public static void main(String[] args){
int[][] inte= {{1,4},{2,5},{6,9},{7,10},{11,45}};
MergeIntervals mi = new MergeIntervals();
int[][] aa= mi.merge(inte);
for (int i=0 ;i <aa.length;i++){
for(int j=0;j <aa[i].length;j++){
System.out.println(aa[i][j] + " ");
}
System.out.println();
}
}
}