Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Merge Intervals solution in Uncategorized category for Merge Intervals by Elena_Korljukova
def merge_intervals(intervals):
n, a = 0, []
while n < len(intervals):
x = [b for b in range(intervals[n][0], intervals[n][1] + 1)]
for i in intervals[n + 1:]:
p = [c for c in range(i[0], i[1] + 1)]
if set(x)&set(p) or i[0] == intervals[n][-1] + 1:
x = set(x)|set(p)
n += 1
a.append((sorted(x)[0],sorted(x)[-1]))
n += 1
return a
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert merge_intervals([(1, 4), (2, 6), (8, 10), (12, 19)]) == [(1, 6), (8, 10), (12, 19)], "First"
assert merge_intervals([(1, 12), (2, 3), (4, 7)]) == [(1, 12)], "Second"
assert merge_intervals([(1, 5), (6, 10), (10, 15), (17, 20)]) == [(1, 15), (17, 20)], "Third"
print('Done! Go ahead and Check IT')
Aug. 5, 2020