Skip to content

Instantly share code, notes, and snippets.

@mylons
Created December 30, 2018 16:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mylons/74411352d834ac3172d414a68c36f618 to your computer and use it in GitHub Desktop.
Save mylons/74411352d834ac3172d414a68c36f618 to your computer and use it in GitHub Desktop.
overlapping intervals
def interval_overlap(i1, i2):
if i1.end >= i2.start:
return True
else:
return False
def merge_interval(i1, i2):
return Interval(s=min(i1.start, i2.start), e=max(i1.end, i2.end))
class Solution:
def merge(self, intervals):
"""
:type intervals: List[Interval]
:rtype: List[Interval]
"""
result = []
intervals.sort(key=lambda interval: interval.start)
for i in range(len(intervals)):
if len(result) > 0:
if interval_overlap(result[-1], intervals[i]):
result[-1] = merge_interval(result[-1], intervals[i])
else:
result.append(intervals[i])
else:
result.append(intervals[i])
return result
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment