给定一个包含多个数组的二维数组,其中第二维为两个元素,即nums[][2]
合并nums之间有重叠的数组,
class Solution {
class Interval{
int start;
int end;
Interval(int start,int end){
this.start = start;
this.end = end;
}
}
public int[][] merge(int[][] intervals) {
List<Interval> list = new ArrayList<>();
for(int i=0;i<intervals.length;i++){
list.add(new Interval(intervals[i][0],intervals[i][1]));
}
Collections.sort(list,new Comparator<Interval>(){
public int compare(Interval o1,Interval o2){
return o1.start>o2.start?1:o1.start == o2.start?0:-1;
}
});
LinkedList<Interval> linkedlist = new LinkedList<>();
for(Interval temp:list){
if(linkedlist.isEmpty() || linkedlist.getLast().end < temp.start){
linkedlist.add(temp);
}else{
linkedlist.getLast().end = Math.max(linkedlist.getLast().end,temp.end);
}
}
int[][] res = new int[linkedlist.size()][2];
for(int i=0;i<res.length;i++){
res[i][0] = linkedlist.get(i).start;
res[i][1] = linkedlist.get(i).end;
}
return res;
}
}