File tree Expand file tree Collapse file tree 2 files changed +52
-2
lines changed
find-median-from-data-stream Expand file tree Collapse file tree 2 files changed +52
-2
lines changed Original file line number Diff line number Diff line change 1+ """
2+ Constraints:
3+ - -10^5 <= num <= 10^5
4+ - There will be at least one element in the data structure before calling findMedian.
5+ - At most 5 * 10^4 calls will be made to addNum and findMedian.
6+
7+ Time Complexity:
8+ - addNum(): O(nlogn)
9+ - ๋งค๋ฒ ์ ๋ ฌํ๊ธฐ ๋๋ฌธ
10+ - findMedian(): O(1)
11+ - ์ ๋ ฌ๋ ๋ฆฌ์คํธ์์ ์ธ๋ฑ์ค ์ ๊ทผ
12+
13+ Space Complexity: O(n)
14+ - ์
๋ ฅ๋ ๋ชจ๋ ์ซ์๋ฅผ ๋ฆฌ์คํธ์ ์ ์ฅ
15+
16+ ํ์ด๋ฐฉ๋ฒ:
17+ 1. ๋ฆฌ์คํธ ์๋ฃ๊ตฌ์กฐ ์ฌ์ฉ
18+ 2. ๋ฆฌ์คํธ์ ๊ฐ ์์๋ค ์ถ๊ฐ ํ ์ ๋ ฌ
19+ 3. ๋ฆฌ์คํธ์ ์์ ๊ฐฏ์๊ฐ ํ์/์ง์์ผ ๋์ ๊ฒฝ์ฐ๋ฅผ ๋๋ ์ median ๊ฐ์ ๊ตฌํจ
20+
21+ ๋ฉ๋ชจ:
22+ - heap์ด ์ต์ํ์ง ์์์ ์ผ๋จ ๋ฆฌ์คํธ๋ก ๋ฌธ์ ๋ฅผ ํ์์ต๋๋ค.
23+ - ๋์ค์ heap์ผ๋ก ๋ค์ ํ๊ธฐ
24+ """
25+ class MedianFinder :
26+
27+ def __init__ (self ):
28+ self .nums = []
29+
30+ def addNum (self , num : int ) -> None :
31+ self .nums .append (num )
32+ self .nums .sort ()
33+
34+
35+ def findMedian (self ) -> float :
36+ n = len (self .nums )
37+ if n % 2 == 1 :
38+ return self .nums [n // 2 ]
39+ else :
40+ mid1 = self .nums [n // 2 - 1 ]
41+ mid2 = self .nums [n // 2 ]
42+ return (mid1 + mid2 ) / 2.0
43+
Original file line number Diff line number Diff line change 1313
1414ํ์ด๋ฐฉ๋ฒ:
15151. Base case: ๋น ๋ฐฐ์ด/none์ผ ๋ True ๋ฐํ
16- 2. intervals๋ฅผ ์์์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
17- 3. prev_end ์ด๊ธฐํ (์ฒซ ๋ฒ์งธ ๋ฏธํ
์ ์ข
๋ฃ ์๊ฐ)
16+ 2. ๋ฆฌ์คํธ(ntervals)๋ฅผ ์์์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
17+ 3. prev_end(์ฒซ ๋ฒ์งธ ๋ฏธํ
์ ์ข
๋ฃ ์๊ฐ) ๋ณ์ ์ด๊ธฐํ
18184. ๋ ๋ฒ์งธ ๋ฏธํ
๋ถํฐ ์ํํ๋ฉด์:
1919 - ๋ง์ฝ ํ์ฌ ์์์ (๋ฏธํ
์์ ์๊ฐ)์ด ์ด์ ๋ฏธํ
์ ์ข
๋ฃ ์๊ฐ๋ณด๋ค ์์ผ๋ฉด false ๋ฐํ
2020 - ๊ทธ๋ ์ง ์์ผ๋ฉด prev_end๋ฅผ ํ์ฌ ๋ฏธํ
์ ์ข
๋ฃ ์๊ฐ์ผ๋ก ์
๋ฐ์ดํธ
21215. ๋ชจ๋ ๋ฏธํ
์ ๊ฒ์ฌํ ํ์๋ ์ถฉ๋์ด ์์ผ๋ฉด true ๋ฐํ
22+
23+ ๋ฉ๋ชจ:
24+ 1. ๋ณ์๋ช
ํท๊ฐ๋ฆผ
25+ - intervals๋ ๋ฆฌ์คํธ -> `.end` ์์ฑ ์์
26+ - interval์ ๊ฐ์ฒด -> `.end` ์์ฑ ์์
27+ 2. ์ ๋ ฌ ๋ฌธ๋ฒ
28+ - list.sort(key=lambda x: x.start)
2229"""
2330from typing import List
2431
You canโt perform that action at this time.
0 commit comments