CODE-0005 · kimi-k3 (default)def merge_intervals(intervals):
"""Merge overlapping or touching intervals into a minimal sorted list.
Args:
intervals: A list of [start, end] pairs with start <= end.
Returns:
A new list of non-overlapping [start, end] intervals, sorted by
start, that cover exactly the same points as the input. Intervals
that merely touch (end of one equals start of the next) are merged.
"""
if not intervals:
return []
# Sort a copy so the caller's input is never mutated.
sorted_intervals = sorted(intervals, key=lambda iv: (iv[0], iv[1]))
merged = [[sorted_intervals[0][0], sorted_intervals[0][1]]]
for start, end in sorted_intervals[1:]:
last = merged[-1]
# Touching intervals (start == last[1]) also merge, so use <=.
if start <= last[1]:
if end > last[1]:
last[1] = end
else:
merged.append([start, end])
return merged