def merge_intervals(intervals):
if not intervals:
return []
sorted_intervals = sorted(
([interval[0], interval[1]] for interval in intervals),
key=lambda interval: interval[0],
)
merged = [sorted_intervals[0]]
for start, end in sorted_intervals[1:]:
if start <= merged[-1][1]:
merged[-1][1] = max(merged[-1][1], end)
else:
merged.append([start, end])
return merged