1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class Solution {
public int[][] merge(int[][] intervals) { Arrays.sort(intervals, (p, q) -> p[0] - q[0]); List<int[]> ans = new ArrayList<>(); int[] last = new int[]{intervals[0][0], intervals[0][1]}; for (int i = 1; i < intervals.length; i++) { if (intervals[i][0] <= last[1]) { last[1] = Math.max(intervals[i][1], last[1]); } else { ans.add(last); last = intervals[i]; } } ans.add(last); return ans.toArray(new int[ans.size()][]); } }
|