반응형
난이도 - Medium
Intuition
Hash table에 num값과 그 idx들을 list로 저장해 놓고, 나중에 O(1)으로 pick할 수 있다.
Code
class Solution:
def __init__(self, nums: List[int]):
self.hash_table = defaultdict(list)
for i, num in enumerate(nums):
self.hash_table[num].append(i)
def pick(self, target: int) -> int:
idxs = self.hash_table[target]
return random.choice(idxs)
# Your Solution object will be instantiated and called as such:
# obj = Solution(nums)
# param_1 = obj.pick(target)
Complexity
Time Complexity: O(1)
Space Complexity: O(N)
반응형
'코딩 알고리즘 문제 > Leetcode' 카테고리의 다른 글
| 217. Contains Duplicate (Array, Hash Table, Sorting) (0) | 2025.10.24 |
|---|---|
| 48. Rotate Image (0) | 2025.10.24 |
| 33. Search in Rotated Sorted Array (Array, Binary Search) (0) | 2025.10.24 |
| 670. Maximum Swap (Math, Greedy) (0) | 2025.10.24 |
| 778. Swim in Rising Water (Array, Binary Search, Depth-First Search, Breadth-First Search, Union Find, Heap (Priority Queue), Matrix) (0) | 2025.10.24 |