File tree Expand file tree Collapse file tree 2 files changed +34
-8
lines changed
find-median-from-data-stream Expand file tree Collapse file tree 2 files changed +34
-8
lines changed Original file line number Diff line number Diff line change 5
5
- At most 5 * 10^4 calls will be made to addNum and findMedian.
6
6
7
7
Time Complexity:
8
- -
8
+ - addNum(): O(nlogn)
9
+ - 매번 정렬하기 때문
10
+ - findMedian(): O(1)
11
+ - 정렬된 리스트에서 인덱스 접근
9
12
10
- Space Complexity:
11
- -
13
+ Space Complexity: O(n)
14
+ - 입력된 모든 숫자를 리스트에 저장
12
15
13
16
풀이방법:
14
- -
17
+ 1. 리스트 자료구조 사용
18
+ 2. 리스트에 각 요소들 추가 후 정렬
19
+ 3. 리스트의 요소 갯수가 홀수/짝수일 때의 경우를 나눠서 median 값을 구함
20
+
21
+ 메모:
22
+ - heap이 익숙하지 않아서 일단 리스트로 문제를 풀었습니다.
23
+ - 나중에 heap으로 다시 풀기
15
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 21
21
5. 모든 미팅을 검사한 후에도 충돌이 없으면 true 반환
22
22
23
23
메모:
24
-
25
- 변수명 헷갈림:
24
+ 1. 변수명 헷갈림
26
25
- intervals는 리스트 -> `.end` 속성 없음
27
26
- interval은 객체 -> `.end` 속성 있음
28
-
29
- 정렬 문법:
27
+ 2. 정렬 문법
30
28
- list.sort(key=lambda x: x.start)
31
29
"""
32
30
from typing import List
You can’t perform that action at this time.
0 commit comments