无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Leetcode Day19 1

2022-04-25 10:35 作者:我喜歡喝一點點  | 我要投稿

398. 隨機(jī)數(shù)索引

給定一個可能含有重復(fù)元素的整數(shù)數(shù)組,要求隨機(jī)輸出給定的數(shù)字的索引。 您可以假設(shè)給定的數(shù)字一定存在于數(shù)組中。


注意:

數(shù)組大小可能非常大。 使用太多額外空間的解決方案將不會通過測試。


示例:


int[] nums = new int[] {1,2,3,3,3};

Solution solution = new Solution(nums);


// pick(3) 應(yīng)該返回索引 2,3 或者 4。每個索引的返回概率應(yīng)該相等。

solution.pick(3);


// pick(1) 應(yīng)該返回 0。因為只有nums[0]等于1。

solution.pick(1);


嗯這道題我只會用dict做,用一個然后每個鍵值對應(yīng)一個idx的列表

看了下題解,defaultdict是可以在沒有value值時返回某人值的~

class?Solution:


????def?__init__(self,?nums:?List[int]):

????????self.nums_idx_map=defaultdict(list)

????????for?i,nums?in?enumerate(nums):

????????????self.nums_idx_map[nums].append(i)


????def?pick(self,?target:?int)?->?int:

????????return?random.choice(self.nums_idx_map[target])



然后我看題解給了個更高效的算法:大數(shù)據(jù)抽樣法

所以可以以1/k的概率進(jìn)行更新,就可以保證概率相同


Leetcode Day19 1的評論 (共 條)

分享到微博請遵守國家法律
同仁县| 营山县| 社会| 元氏县| 扬中市| 胶州市| 永城市| 贵州省| 精河县| 马公市| 塘沽区| 东乌珠穆沁旗| 本溪| 长葛市| 桑植县| 台安县| 长治县| 重庆市| 武隆县| 长白| 县级市| 喀什市| 天柱县| 定边县| 临高县| 江西省| 通辽市| 和田县| 临泽县| 紫金县| 金坛市| 桓仁| 子长县| 雅安市| 同江市| 神农架林区| 龙口市| 阜新| 汨罗市| 惠州市| 蓝田县|