參考資料:代碼隨想錄
題目鏈接:. - 力扣(LeetCode)
做過用最少數量的箭引爆氣球和無重疊區間這兩道題目后,題意和題解都不難理解。唯一的一點兒難點是對于api的運用。
class Solution {public int[][] merge(int[][] intervals) {if(intervals.length == 0) return null;Arrays.sort(intervals,(a,b)->Integer.compare(a[0],b[0]));//List<int[]> res = new ArrayList<>();List<int[]> res = new LinkedList<>();//默認有一個區間res.add(intervals[0]);//遍歷區間for(int i = 1;i < intervals.length;i++){//判斷是否是重復區間if(intervals[i][0] <= res.getLast()[1]){//進行合并操作int begin = res.get(i-1)[0];int end = Math.max(intervals[i][1],res.get(i-1)[1]);res.removeLast();res.add(new int[]{begin,end});}else{//不重復則直接放入res.add(intervals[i]);}}return res.toArray(new int[res.size()][]);}
}