Skip to content

Commit b86f31e

Browse files
committed
non-overlapping-intervals solution
1 parent 12b0db2 commit b86f31e

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
class Solution:
2+
def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:
3+
4+
# ๊ทธ๋ฆฌ๋””
5+
# ์‹œ๊ฐ„๋ณต์žก๋„ O(n log n), ๊ณต๊ฐ„๋ณต์žก๋„ O(1)
6+
7+
# ์‹œ์ž‘์  ๊ธฐ์ค€ ์ •๋ ฌ
8+
intervals.sort()
9+
answer = 0 # ์ œ๊ฑฐํ•  ๊ฐœ์ˆ˜
10+
curr_end = intervals[0][1] # ์ฒซ ๊ตฌ๊ฐ„ ๋๋‚˜๋Š” ์ง€์  ์ดˆ๊ธฐํ™”
11+
12+
for i in range(1,len(intervals)):
13+
start, end = intervals[i]
14+
15+
# ๊ฒน์น˜๋Š” ๊ฒฝ์šฐ(์ œ๊ฑฐ)
16+
if start < curr_end:
17+
# ํ˜„์žฌ ๊ตฌ๊ฐ„ ์ œ๊ฑฐ
18+
answer += 1
19+
# ๋” ์ž‘์€ ์ง€์  ๋‚จ๊ธฐ๊ธฐ(๊ฒน์น˜๋Š” ๋ถ€๋ถ„์„ ์ค„์ด๊ธฐ์œ„ํ•ด)
20+
curr_end = min(curr_end, end)
21+
22+
# ์•ˆ๊ฒน์น˜๋Š” ๊ฒฝ์šฐ(ํ˜„์žฌ ๊ตฌ๊ฐ„์„ ๋‹ค์Œ ๊ธฐ์ค€์œผ๋กœ ํƒ์ƒ‰)
23+
else:
24+
curr_end = end
25+
26+
return answer

0 commit comments

Comments
ย (0)