题目链接:398. 随机数索引
用一个哈希表记录每个元素对应的索引的列表,随机选择。
import random
from collections import defaultdict
from functools import reduce
from typing import Dict, Tuple, List
class Solution:
def __init__(self, nums: List[int]):
def func(val, ele):
i, v = ele
val[v].append(i)
return val
self.data = reduce(func, enumerate(nums), defaultdict(list))
def pick(self, target: int) -> int:
return random.choice(self.data[target])