Skip to content

Merge Intervals

01 · Question

Given an array of intervals where intervals[i] = [start, end], merge all overlapping intervals.

02 · Solution

Reference solution

1def merge(intervals: List[List[int]]) -> List[List[int]]:
2 intervals.sort(key=lambda x: x[0])
3 res = [intervals[0]]
4
5 for s, e in intervals[1:]:
6 last = res[-1]
7 if s <= last[1]:
8 last[1] = max(last[1], e)
9 else:
10 res.append([s, e])
11
12 return res