CODE-0005 · deepseek-v4-pro (default)def merge_intervals(intervals):
"""Merge overlapping and touching intervals.
Args:
intervals: List of intervals where each interval is [start, end] with start <= end.
Returns:
A new list of non-overlapping, merged intervals sorted by start. An empty
list is returned if the input is empty.
"""
if not intervals:
return []
# Sort by start time while keeping original intervals untouched
sorted_intervals = sorted(intervals, key=lambda x: x[0])
merged = []
current_start, current_end = sorted_intervals[0]
for start, end in sorted_intervals[1:]:
if current_end >= start: # Overlap or touch
current_end = max(current_end, end)
else:
merged.append([current_start, current_end])
current_start, current_end = start, end
merged.append([current_start, current_end])
return merged