File tree Expand file tree Collapse file tree 1 file changed +57
-0
lines changed
non-overlapping-intervals Expand file tree Collapse file tree 1 file changed +57
-0
lines changed Original file line number Diff line number Diff line change
1
+ # https://leetcode.com/problems/non-overlapping-intervals/
2
+
3
+ from typing import List
4
+
5
+ class Solution :
6
+ def eraseOverlapIntervals1 (self , intervals : List [List [int ]]) -> int :
7
+ """
8
+ [Complexity]
9
+ - TC: O(nlogn) (sort)
10
+ - SC: O(1) (tim sort -> ์ต์
์ ๊ฒฝ์ฐ O(n)๊น์ง ๊ฐ๋ฅ)
11
+
12
+ [Approach]
13
+ intervals๋ฅผ start ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ ํ, greedy ํ๊ฒ ํญ์ ์์ end๋ฅผ ๊ฐ์ง๋ interval์ ์ ํํ๋ค.
14
+ """
15
+ # sort asc by start
16
+ intervals .sort (key = lambda x : x [0 ])
17
+
18
+ # initialize prev_e
19
+ prev_e = intervals [0 ][0 ] - 1
20
+ to_be_removed = 0
21
+
22
+ for s , e in intervals :
23
+ # (1) overlapping : greedyํ๊ฒ prev_e์ e ์ค ๋ ์์ ๊ฐ์ผ๋ก prev_e๋ฅผ ์
๋ฐ์ดํธํ๊ณ , ์ ๊ฑฐํ interval ์ ์ฆ๊ฐ
24
+ if prev_e > s :
25
+ prev_e = min (prev_e , e )
26
+ to_be_removed += 1
27
+ # (2) non-overlapping : prev_e๋ง ์
๋ฐ์ดํธ
28
+ else :
29
+ prev_e = e
30
+
31
+ return to_be_removed
32
+
33
+ def eraseOverlapIntervals (self , intervals : List [List [int ]]) -> int :
34
+ """
35
+ [Complexity]
36
+ - TC: O(nlogn) (sort)
37
+ - SC: O(1) (tim sort -> ์ต์
์ ๊ฒฝ์ฐ O(n)๊น์ง ๊ฐ๋ฅ)
38
+
39
+ [Approach]
40
+ ์ด์ ํ์ด์ (1) overlapping ๋จ๊ณ์์ prev_e์ e ์ค min์ ๊ณ ๋ฅด๋ ๋ก์ง์ ์ ๊ฑฐํ๋ ค๋ฉด, intervals๋ฅผ end ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ฉด ๋๋ค.
41
+ """
42
+ # sort asc by end
43
+ intervals .sort (key = lambda x : x [1 ])
44
+
45
+ # initialize prev_e
46
+ prev_e = intervals [0 ][0 ] - 1
47
+ to_be_removed = 0
48
+
49
+ for s , e in intervals :
50
+ # (1) overlapping : greedyํ๊ฒ prev_e์ e ์ค ๋ ์์ ๊ฐ์ผ๋ก ์ ํํ๋ฉด ๋๋ฏ๋ก prev_e๋ฅผ ๊ทธ๋๋ก ๋๊ณ , ์ ๊ฑฐํ interval ์ ์ฆ๊ฐ
51
+ if prev_e > s :
52
+ to_be_removed += 1
53
+ # (2) non-overlapping : prev_e๋ง ์
๋ฐ์ดํธ
54
+ else :
55
+ prev_e = e
56
+
57
+ return to_be_removed
You canโt perform that action at this time.
0 commit comments