Merge Two Sorted Interval Lists
Notice
def mergeTwoInterval(self, list1, list2):
if not list1 or not list2:
return list1 + list2
lo = hi = min(list1[0].start, list2[0].start)
i, j, result = 0, 0, []
while i < len(list1) or j < len(list2):
if i == len(list1):
interval = list2[j]
j += 1
elif j == len(list2):
interval = list1[i]
i += 1
elif list1[i].start < list2[j].start:
interval = list1[i]
i += 1
else:
interval = list2[j]
j += 1
if interval.start > hi:
result.append(Interval(lo, hi))
lo, hi = interval.start, interval.end
else:
hi = max(hi, interval.end)
result.append(Interval(lo, hi))
return result[: ]Last updated