Merge Intervals

LeetCode: https://leetcode.com/problems/merge-intervals/

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

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
[8,10]
0
[1,3]
1
[15,18]
2
[2,6]
3
[18,20]
4
Step 1 / 8
Step 1:
Sort intervals by start time so a single left-to-right sweep works.
Focus: select