Skip to main content
PreparationZone Logo
PreparationZone
Back to Fundamentals

Fundamentals · Medium · Free

Merge overlapping intervals — sort and sweep.

FresherFundamentalsData Structures & Algorithms
Model answer

Merge intervals

Sort by start, sweep merging overlapping intervals.

java
List<int[]> merge(int[][] intervals) {
  Arrays.sort(intervals, (a, b) -> a[0] - b[0]);
  List<int[]> res = new ArrayList<>();
  for (int[] iv : intervals) {
    if (res.isEmpty() || res.get(res.size()-1)[1] < iv[0]) res.add(iv);
    else res.get(res.size()-1)[1] = Math.max(res.get(res.size()-1)[1], iv[1]);
  }
  return res;
}
Classic calendar / meeting room problems.