CODE-0005 · claude-sonnet-4-6 (high)def merge_intervals(intervals):
"""
Merge overlapping or touching intervals.
Args:
intervals: list of [start, end] pairs with start <= end
Returns:
Minimal list of non-overlapping [start, end] intervals sorted by start.
Touching intervals (e.g. [1,2] and [2,3]) are merged into [1,3].
"""
if not intervals:
return []
# Sort by start, then by end descending so nested intervals sort correctly
sorted_intervals = sorted(intervals, key=lambda iv: (iv[0], iv[1]))
merged = [list(sorted_intervals[0])]
for current in sorted_intervals[1:]:
last = merged[-1]
# Merge if current start <= last end (overlap or touch)
if current[0] <= last[1]:
last[1] = max(last[1], current[1])
else:
merged.append(list(current))
return merged