Skip to content

Commit e5950a9

Browse files
committed
docs: fix complexity comments
1 parent 54b9019 commit e5950a9

File tree

5 files changed

+42
-10
lines changed

5 files changed

+42
-10
lines changed

contains-duplicate/hyogshin.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ def containsDuplicate(self, nums: List[int]) -> bool:
88

99

1010
'''
11-
시간 복잡도: O(n)??
12-
공간 복잡도: set을 활용해 nums 리스트를 복사함 -> len(nums)의 2배?
11+
시간 복잡도: O(n)
12+
- set(nums)는 내부적으로 nums의 모든 원소에 대해 __hash__() 및 __eq__() 호출 -> O(n)
13+
- len() 함수는 O(1) -> 무시
14+
15+
공간 복잡도: O(n)
16+
- set(nums)는 nums의 원소를 모두 저장할 수 있게 공간 사용 -> 최악의 경우 O(n)
1317
'''

house-robber/hyogshin.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,15 @@ def rob(self, nums: List[int]) -> int:
1111
return max(dp)
1212

1313
'''
14-
시간 복잡도: for loop -> O(n)
15-
공간 복잡도: dp 배열
14+
시간 복잡도: O(n log n)
15+
- set() -> O(n)
16+
- sorted() -> O(n log n)
17+
- for loop -> O(n)
18+
- max() -> O(n)
19+
20+
공간 복잡도: O(n)
21+
- set() -> O(n)
22+
- sorted list -> O(n)
23+
- rs -> O(n)
24+
- O(3n) => O(n)
1625
'''

longest-consecutive-sequence/hyogshin.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,15 @@ def longestConsecutive(self, nums: List[int]) -> int:
1818
return max(rs)
1919

2020
'''
21-
시간 복잡도: for loop 1회 -> O(n)
22-
공간 복잡도: nums 리스트 + rs 배열 (최대 len(nums)) + sorted로 nums 배열 복사
21+
시간 복잡도: O(n log n)
22+
- set(nums) -> O(n)
23+
- sorted(list(s)) -> O(n log n)
24+
- for loop -> O(n)
25+
- O(2n) + O(n log n) => O(2n) 이 아니라 왜 O(n log n) 이지?
26+
27+
공간 복잡도: O(n)
28+
- set -> O(n)
29+
- sorted() -> O(n)
30+
- rs -> O(n)
31+
- O(3n) => O(n)
2332
'''

top-k-frequent-elements/hyogshin.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ def topKFrequent(self, nums: List[int], k: int) -> List[int]:
2323
return ans
2424

2525
'''
26-
시간 복잡도: for loop 2회 -> O(2n) -> O(n)
27-
공간 복잡도: 배열 크기 (10**4 + 1) 두 개 + nums 리스트 + ans 배열
26+
시간 복잡도: O(1)
27+
- for loop -> 보통 O(n) 이지만, 길이 10001 짜리 고정 배열 -> O(1)로 취급 가능
28+
29+
공간 복잡도: 입력 제외 -> O(1), 입력 포함 -> O(n)
30+
- plus 배열: 10001 -> O(1)
31+
- minus 배열: 10001 -> O(1)
32+
- ans 배열: 길이 k -> O(k)
2833
'''

two-sum/hyogshin.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ def twoSum(self, nums: List[int], target: int) -> List[int]:
1313
return rs
1414

1515
'''
16-
시간 복잡도: for loop 사용 -> O(n)
17-
공간 복잡도: len(nums) + rs 배열에서 number 2개 저장
16+
시간 복잡도: O(n^2)
17+
- nums.index(pair) -> O(n)
18+
- for loop 안에서 nums.index(pair) 최대 2번 호출 -> O(2n^2) -> O(n^2)
19+
20+
공간 복잡도: O(1)
21+
- rs 배열에서 number 2개 저장 -> O(1) 공간
22+
- nums 복사나 set/dict 없음
1823
'''

0 commit comments

Comments
 (0)