Skip to content

Commit 1a4c116

Browse files
committed
feat: merge-overlapping-intervals challenge
1 parent dcd3d8d commit 1a4c116

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed
Binary file not shown.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
def merge_intervals(intervals):
2+
if not intervals:
3+
return []
4+
5+
# Sort intervals based on the start time
6+
intervals.sort(key=lambda x: x[0])
7+
merged = [intervals[0]]
8+
9+
for current in intervals[1:]:
10+
last = merged[-1]
11+
if current[0] <= last[1]: # Overlapping intervals
12+
merged[-1] = [last[0], max(last[1], current[1])]
13+
else:
14+
merged.append(current)
15+
16+
return merged
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Challenge: Given a list of intervals (e.g., [[1, 3], [2, 6], [8, 10]]), implement a function that merges all overlapping intervals and returns an array with the resulting intervals.
2+
3+
from intervals import merge_intervals
4+
5+
def main():
6+
intervals = [[1, 3], [2, 6], [8, 10], [15, 18]]
7+
merged = merge_intervals(intervals)
8+
print("Merged intervals:", merged)
9+
10+
if __name__ == "__main__":
11+
main()

0 commit comments

Comments
 (0)