Skip to content

Commit d7f9e15

Browse files
committed
solve 4
1 parent d7c2369 commit d7f9e15

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

โ€Žmerge-intervals/pmjuu.pyโ€Ž

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
'''
2+
์‹œ๊ฐ„ ๋ณต์žก๋„: O(n log n)
3+
- intervals ์ •๋ ฌํ•˜๋Š” ๋ฐ O(n log n)
4+
- intervals ํ•œ ๋ฒˆ ์ˆœํšŒํ•˜๋ฉด์„œ ๋ณ‘ํ•ฉ ์ž‘์—… ์ˆ˜ํ–‰: O(n)
5+
6+
๊ณต๊ฐ„ ๋ณต์žก๋„: O(n)
7+
- ๊ฒฐ๊ณผ ๋ฆฌ์ŠคํŠธ์— ๋ณ‘ํ•ฉ๋œ interval์„ ์ €์žฅํ•ด์•ผ ํ•˜๋ฏ€๋กœ O(n)
8+
'''
9+
from typing import List
10+
11+
class Solution:
12+
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
13+
result = []
14+
intervals.sort(key=lambda x: x[0])
15+
left, right = intervals[0]
16+
17+
for start, end in intervals[1:]:
18+
# stop merging
19+
if 0 <= right < start:
20+
result.append([left, right])
21+
left, right = start, end
22+
# merge overlapping intervals
23+
else:
24+
left, right = min(left, start), max(right, end)
25+
26+
result.append([left, right])
27+
28+
return result

0 commit comments

Comments
ย (0)