题目
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;}
}