![]()
解题思路:思路还是比较清晰,先按照起始位置排序,然后再逐个遍历,根据起始位置与前一个结束位置进行比较,两种情况进行处理即可(这边代码比较麻烦因为前面list泛型用错了)
import java.util.Arrays;
class Solution {
public int[][] merge(int[][] intervals) {
List<List<Integer>> list = new ArrayList<>();
Arrays.sort(intervals, (int[] a,int[] b)->{
return Integer.compare(a[0], b[0]);
});
int left = intervals[0][0];
int right = intervals[0][1];
for(int i=0;i<intervals.length;i++){
if(intervals[i][0]>right){
int[] l = {left,right};
list.add(Arrays.asList(left, right));
left = intervals[i][0];
right = intervals[i][1];
}else{
right = Math.max(right,intervals[i][1]);
}
}
list.add(Arrays.asList(left, right));
int[][] res = new int[list.size()][2];
for(int i=0;i<list.size();i++){
res[i][0] = list.get(i).get(0);
res[i][1] = list.get(i).get(1);
}
return res;
}
}