Skip to content

Commit 77f1223

Browse files
committed
solve: insertInterval
1 parent 48f3cbd commit 77f1223

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

insert-interval/yolophg.py

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Time Complexity: O(N) - iterate through the intervals once.
2+
# Space Complexity: O(N) - store the merged intervals in a new list.
3+
4+
class Solution:
5+
def insert(self, intervals: List[List[int]], newInterval: List[int]) -> List[List[int]]:
6+
output = []
7+
start, end = newInterval
8+
9+
for interval in intervals:
10+
if interval[1] < start:
11+
# no overlap, and the current interval ends before newInterval starts
12+
output.append(interval)
13+
elif interval[0] > end:
14+
# no overlap, and the current interval starts after newInterval ends
15+
output.append([start, end]) # insert merged interval before appending the remaining ones
16+
output.extend(intervals[intervals.index(interval):]) # append remaining intervals
17+
return output
18+
else:
19+
# overlapping case: merge intervals
20+
start = min(start, interval[0])
21+
end = max(end, interval[1])
22+
23+
# add the merged interval at the end if it wasn't added earlier
24+
output.append([start, end])
25+
26+
return output

0 commit comments

Comments
 (0)