LeetCode 56 Merge Intervals - Implementation

The approach

Sort by start. Merge overlapping intervals greedily.

def merge(intervals): intervals.sort(key=lambda x: x[0]) result = [intervals[0]]

for start, end in intervals[1:]:
    if start <= result[-1][1]:
        result[-1][1] = max(result[-1][1], end)
    else:
        result.append([start, end])

return result

O(nlogn)O(n \log n) time, O(n)O(n) space.