CODE-0005 · claude-opus-4-8 (low)def merge_intervals(intervals):
"""Merge overlapping or touching intervals into the minimal covering set.
Args:
intervals: list of [start, end] pairs with start <= end.
Returns:
A new list of non-overlapping [start, end] lists sorted by start.
Intervals that overlap or merely touch are merged. The caller's
input (and its inner lists) are never mutated.
"""
if not intervals:
return []
# Copy each interval so we never mutate the caller's data, then sort by
# start (and end as a tiebreak) without disturbing the original list.
ordered = sorted(([start, end] for start, end in intervals),
key=lambda iv: (iv[0], iv[1]))
merged = [ordered[0]]
for start, end in ordered[1:]:
last = merged[-1]
# Overlapping or touching: current start is at or before last end.
if start <= last[1]:
if end > last[1]:
last[1] = end
else:
merged.append([start, end])
return merged