1public int[][] merge(int[][] intervals) {
2 Arrays.sort(intervals, (a, b) -> Integer.compare(a[0], b[0]));
3 List<int[]> result = new ArrayList<>();
4 result.add(intervals[0]);
5 for (int i = 1; i < intervals.length; i++) {
6 int[] current = intervals[i];
7 int[] lastMerged = result.get(result.size() - 1);
8 if (current[0] <= lastMerged[1]) {
9 lastMerged[1] = Math.max(lastMerged[1], current[1]);
10 } else {
11 result.add(current);
12 }
13 }
14 return result.toArray(new int[result.size()][]);
15}