Skip to content

Instantly share code, notes, and snippets.

@les-peters
Created April 25, 2022 20:23
Show Gist options
  • Save les-peters/8cbf0053272660c2c353fd272548348b to your computer and use it in GitHub Desktop.
Save les-peters/8cbf0053272660c2c353fd272548348b to your computer and use it in GitHub Desktop.
Merged Intervals
question = """
Given an array of intervals, merge the overlapping intervals, and return an array of the resulting intervals.
Example:
$ mergeIntervals([[1,4],[2,6],[8,10],[15,20]])
$ [[1,6],[8,10],[15,20]]
$ mergeIntervals([[1,2],[2,7]])
$ [[1,7]]
"""
def mergeIntervals(intervals):
merged_intervals = []
merged_interval = {}
for interval in intervals:
start, end = interval
for i in range(start, end+1):
merged_interval[str(i)] = 1
start = None
for key in sorted(map(lambda x: int(x), merged_interval.keys())):
if start == None:
start = key
next = str( key + 1)
if next not in merged_interval.keys():
merged_intervals.append([start, key])
start = None
return merged_intervals
print(mergeIntervals([[1,4],[2,6],[8,10],[15,20]]))
print(mergeIntervals([[1,2],[2,7]]))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment