classSolution:defmerge(self, intervals: List[List[int]])-> List[List[int]]:
res =list()
sorted_arr =sorted(intervals, key=lambda x: x[0])
i =0
left, right = inf,-inf
while i <len(sorted_arr):
left =min(sorted_arr[i][0], left)
right =max(sorted_arr[i][1], right)
i +=1if i ==len(sorted_arr)or right < sorted_arr[i][0]:
res.append([left, right])
left, right = inf,-inf
return res
Java
classSolution{publicint[][]merge(int[][] intervals){List<List<Integer>> res =newArrayList<>();Arrays.sort(intervals,(a1, a2)->{return a1[0]- a2[0];});int left =Integer.MAX_VALUE, right =Integer.MIN_VALUE, i =0;while(i < intervals.length){
left =Math.min(left, intervals[i][0]);
right =Math.max(right, intervals[i][1]);++i;if(i == intervals.length || right < intervals[i][0]){
res.add(newArrayList<>(Arrays.asList(left, right)));
left =Integer.MAX_VALUE;
right =Integer.MIN_VALUE;}}int[][] resArray =newint[res.size()][2];for(i =0; i < res.size();++i){
resArray[i][0]= res.get(i).get(0);
resArray[i][1]= res.get(i).get(1);}return resArray;}}