題目
56. 合并區間 - 力扣(LeetCode)
解析:
先按開始維度排序,之后依次合并,如果開頭 <= 當前區間的最后就合并,> 就開辟新區間
代碼:
class Solution {public int[][] merge(int[][] intervals) {int n = intervals.length;Arrays.sort(intervals, (a, b)->{return a[0] - b[0];});List<int[]> list = new ArrayList<>();int s = intervals[0][0];int e = intervals[0][1];for(int i = 1; i < n; i++){if(intervals[i][0] <= e) e = Math.max(e, intervals[i][1]);else{list.add(new int[]{s,e});s = intervals[i][0];e = intervals[i][1];}}list.add(new int[]{s,e});int[][] ans = new int[list.size()][2];for(int i = 0; i < list.size(); i++)ans[i] = list.get(i);return ans;}
}