# Given a collection of intervals, merge all overlapping intervals.
#
# For example,
# Given [1,3],[2,6],[8,10],[15,18],
# return [1,6],[8,10],[15,18].
class Interval():
def __init__(self, s=0, e=0):
self.start = s
self.end = e
class Solution():
def merge(self, xs):
xs.sort(key=lambda x:x.start)
cur = 1
for _ in range(1, len(xs)): # len(xs) 每次会自动减一
if xs[cur].start <= xs[cur-1].end:
xs[cur-1].end = max(xs[cur-1].end, xs[cur].end)
del xs[cur]
else:
cur += 1
return xs
if __name__ == "__main__":
print(Solution().merge([Interval(1, 3), Interval(2, 6), Interval(8, 10), Interval(15,18)]))