Intervals - Merge Intervals
Consider the following code snippet for in-place merging intervals. Identify the subtle bug that causes incorrect output on some inputs:
def merge(intervals):
if not intervals:
return []
intervals.sort(key=lambda x: x[0])
index = 0
for i in range(1, len(intervals)):
if intervals[i][0] < intervals[index][1]:
intervals[index][1] = max(intervals[index][1], intervals[i][1])
else:
index += 1
intervals[index] = intervals[i]
return intervals[:index+1]
