Skip to content

Commit e825369

Browse files
authored
Update Merge Intervals - Leetcode 56.py
1 parent 9c65f8c commit e825369

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

Merge Intervals - Leetcode 56/Merge Intervals - Leetcode 56.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,23 @@ def merge(self, intervals: List[List[int]]) -> List[List[int]]:
1212
return merged
1313
# Time: O(n log n)
1414
# Space: O(n)
15+
16+
17+
class Solution:
18+
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
19+
intervals.sort(key=lambda x: x[0]) # Sort by start time
20+
i = 0 # Index to track merged intervals
21+
n = len(intervals)
22+
23+
for j in range(1, n):
24+
# Check if the current interval overlaps with the previous one
25+
if intervals[i][1] >= intervals[j][0]:
26+
intervals[i][1] = max(intervals[i][1], intervals[j][1]) # Merge
27+
else:
28+
i += 1
29+
intervals[i] = intervals[j] # Move next non-overlapping interval
30+
31+
return intervals[:i+1] # Return the relevant merged portion
32+
33+
# Time: O(n log n)
34+
# Space: O(1)

0 commit comments

Comments
 (0)