Write a function to debug a provided snippet of code that has logical errors.
The function is intended to merge overlapping or touching intervals. Correct the provided implementation so it returns intervals sorted by start time, with each merged interval covering the full combined range.
def merge_intervals(intervals):
intervals.sort(key=lambda interval: interval[1])
merged = []
for start, end in intervals:
if merged and start > merged[-1][1]:
merged.append([start, end])
else:
merged[-1][1] = end
return merged
Input: A list of integer pairs [start, end], where start <= end.
Output: A new list of merged intervals.
def merge_intervals(intervals):