链接: https://leetcode-cn.com/problems/random-pick-with-weight/description/
题面
给定一个数组,数组每个位置的值表示该位置的权重,要求按照权重的概率去随机采样。
解法
我们可以先使用 partial_sum 求前缀和,这个结果对于正整数数组是单调递增的。每当需要采样时,我们可以先随机产生一个数字,然后使用二分法查找其在前缀和中的位置,以模拟加权采样的过程。
用前缀和解决权重随机的问题
代码
1 | class Solution { |