def merge_intervals(intervals):
if not intervals:
return []
sorted_intervals = sorted(intervals, key=lambda x: x[0])
result = []
current_start, current_end = sorted_intervals[0][0], sorted_intervals[0][1]
for start, end in sorted_intervals[1:]:
if start <= current_end:
if end > current_end:
current_end = end
else:
result.append([current_start, current_end])
current_start, current_end = start, end
result.append([current_start, current_end])
return result