- See Code
O(nlogn)
class Solution:
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
if not intervals:
return []
intervals = sorted(intervals, key=lambda x: x[0])
res = []
for s, e in intervals:
if not res:
res.append([s, e])
continue
if s <= res[-1][1]:
res[-1][1] = max(res[-1][1], e)
else:
res.append([s, e])
return res