Back to DashboardView Problem Source
Merge Intervals
MediumProblem Statement
Given a list of intervals, merge all the overlapping intervals to produce a list that has only mutually exclusive intervals.
Examples
Example 1:
- Input:
intervals = [[1,3],[2,6],[8,10],[15,18]] - Output:
[[1,6],[8,10],[15,18]]
Approach 1 Merge Intervals:
class Solution {
public int[][] merge(int[][] intervals) {
Arrays.sort(intervals, (a, b) -> Integer.compare(a[0], b[0]));
//comparing to int is slower
var mergedIntervals = new ArrayList<int[]>();
var start = intervals[0][0];
var end = intervals[0][1];
for (int i = 1; i < intervals.length; i ++) {
if (intervals[i][0] <= end) {
end = Math.max(end, intervals[i][1]);
} else {
mergedIntervals.add(new int[]{start, end});
start = intervals[i][0];
end = intervals[i][1];
}
}
mergedIntervals.add(new int[] {start, end});
return mergedIntervals.toArray(new int[0][]);
}
}
Status
Solved
Complexity
Time
O(n log n)Space
O(1)Tags
ArrayMerge Intervals
Date
2026-02-22