1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| class Solution { public int[][] merge(int[][] intervals) { List<int[]> resList = new ArrayList<>();
Arrays.sort(intervals, Comparator.comparingInt(o -> o[0]));
for (int[] interval : intervals) { if (resList.isEmpty()) { resList.add(Arrays.copyOf(interval, 2)); } else { if (interval[0] > resList.getLast()[1]) { resList.add(Arrays.copyOf(interval, 2)); } else { resList.getLast()[1] = Math.max(resList.getLast()[1], interval[1]); } } }
return resList.toArray(new int[0][]); } }
|
References
56. Merge Intervals
剑指 Offer II 074. 合并区间