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