AlgoMaster Logo

Merge Intervals

intervals=[[1,3],[2,6],[8,10],[15,18]]
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}
0 / 9
intervals[1,3][2,6][8,10][15,18]result