區間合併1.合併給定陣列區間
阿新 • • 發佈:2020-12-24
步驟就是先按照陣列的左端點來排序,然後遍歷排好序的陣列,挨個合併,如果當前區間的左端點大於結果陣列中最後一個區間的右端點,則把這個區間新增到結果陣列中,如果小於,則合併他倆。
最好返回list的陣列形式list.toArray()就是返回一個數組形式的list,如果不加引數是返回一個object型別的值,如果加了引數是返回引數型別的陣列。
import java.util.Arrays;
import java.util.ArrayList;
class Solution {
public int[][] merge(int[ ][] intervals) {
if(intervals==null || intervals.length==0)return new int[0][2];
Arrays.sort(intervals,(int[] a,int[] b)->{return a[0]-b[0];});
ArrayList<int[]> res=new ArrayList<int[]>();
res.add(intervals[0]);
for(int i=1;i<intervals.length;i++) {
if(intervals[i][0]>res.get(res.size()-1)[1]){
res.add(intervals[i]);
}else{
int l=Math.min(intervals[i][0],res.get(res.size()-1)[0]);
int r=Math.max(intervals[i][1],res.get(res.size()-1)[1]);
int[] arr=new int[ ]{l,r};
res.set(res.size()-1,arr);
}
}
return res.toArray(new int[res.size()][]);
}
}