56. 合并区间
题目:


题解:
java
class Solution {
public int[][] merge(int[][] intervals) {
int len = intervals.length;
//创建一个新数组
List<int[]> list = new ArrayList<>();
int x = 0;
//将数组进行排序
Arrays.sort(intervals, Comparator.comparingInt(i->i[0]));
int l = intervals[0][0];
int r = intervals[0][1];
for(int i=1;i<len;i++) {
//如果r>=当前的数的开头,同时要确保当前数的结尾要>-当前r,就进行合并
if(r>=intervals[i][0]&&r<=intervals[i][1]) {
r=intervals[i][1];
}
//如果r<当前的数的开头,同时要确保当前数的结尾要>-当前r,直接将当前的l和r加入
else if(r<intervals[i][0]&&r<=intervals[i][1]) {
list.add(new int[]{l, r});
l=intervals[i][0];
r=intervals[i][1];
}
}
list.add(new int[]{l, r});
int[][] arr = list.toArray(int[][]::new);
return arr;
}
}