File tree Expand file tree Collapse file tree 1 file changed +23
-0
lines changed
non-overlapping-intervals Expand file tree Collapse file tree 1 file changed +23
-0
lines changed Original file line number Diff line number Diff line change 1+ class Solution {
2+ /// ๊ตฌ๊ฐ์ ๋ค๋ฃจ๋๋ฐ, ๊ฒน์น์ง ์๊ฒ ์ต๋/์ต์๋ก ๋ฝ๋ ๋ฌธ์ -> ๋์ ๊ธฐ์ค ์ ๋ ฌ + ๊ทธ๋ฆฌ๋
3+ /// ๊ฐ์ฅ ๋นจ๋ฆฌ ๋๋๋ ๊ฒ๋ค์ ์ ํํด์ผ ์ต๋ํ ๋ง์ด ์ ํํ ์ ์์
4+ /// ๋์ ๊ธฐ์ค ์ค๋ฆ์ฐจ์ ์ ๋ ฌ nlogn
5+ /// ์์ฐจ์ ์ผ๋ก ๋๋ฉด์ ๊ฒน์น๋ฉด ์ ๊ฑฐ(์ ๊ฒ๋ค๋ณด๋ค ๋์ ์ด ๋ ๋ค๋ผ์, ์์๋ง ํ์ธํ๋ฉด ๋จ)
6+ /// O(nlogn) time / O(n) space
7+ func eraseOverlapIntervals( _ intervals: [ [ Int ] ] ) -> Int {
8+ let intervals = intervals. sorted { $0 [ 1 ] < $1 [ 1 ] }
9+ var end = intervals [ 0 ] [ 1 ]
10+ var removal = 0
11+
12+ for i in 1 ..< intervals. count {
13+ let isOverlapping = intervals [ i] [ 0 ] < end
14+ if isOverlapping {
15+ removal += 1
16+ } else {
17+ end = intervals [ i] [ 1 ]
18+ }
19+ }
20+
21+ return removal
22+ }
23+ }
You canโt perform that action at this time.
0 commit comments