Problem statement:
https://leetcode.com/problems/merge-intervals/
- Straight forward solution is to sort the intervals by start time, iterate them and check if two intervals overlap. If they overlap we take the union of those intervals; Otherwise, we take both of them.
Python
class Solution: def merge(self, intervals: List[List[int]]) -> List[List[int]]: # sort intervals by start time intervals.sort(key=lambda i: i[0]) res = [] res.append(intervals[0]) n = len(intervals) for i in range(1, n): if res[-1][1] >= intervals[i][0]: res[-1][1] = max(res[-1][1], intervals[i][1]) else: res.append(intervals[i]) return res
Top comments (0)