0
点赞
收藏
分享

微信扫一扫

按权重随机选择

奔跑的酆 2021-09-21 阅读 37
今日算法
题目描述:
示例 1:
示例 2:

由于这是一个随机问题,允许多个答案,因此下列输出都可以被认为是正确的:
[null,1,1,1,1,0]
[null,1,1,1,1,1]
[null,1,1,1,0,0]
[null,1,1,1,0,1]
[null,1,0,1,0,0]
......
诸若此类。

思路一:
代码实现:
class Solution {
    public int len;
    public int[] arr;
    public int total;
    public Solution(int[] w) {
        len = w.length;
        total = 0;
        for (int i = 0; i < len; i++) {
            total += w[I]; 
        }

        arr = new int[total]; // 初始化容器
        int idx = 0;
        for (int i = 0; i < len; i++) {
            for (int j = 0; j < w[i]; j++) {
                arr[idx++] = i; // 往容器放‘球’
            }
        }
    }
    
    public int pickIndex() {
        Random ran = new Random();
        int num = ran.nextInt(total);
        return arr[num]; // 摸’球‘
    }
}
思路二:
举报

相关推荐

0 条评论