🗒️528. 按权重随机选择
2024-12-25
| 2024-12-25
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
创建时间
Dec 25, 2024 12:26 PM
给你一个 下标从 0 开始 的正整数数组 w ,其中 w[i] 代表第 i 个下标的权重。
请你实现一个函数 pickIndex ,它可以 随机地 从范围 [0, w.length - 1] 内(含 0 和 w.length - 1)选出并返回一个下标。选取下标 i 的 概率 为 w[i] / sum(w) 。
  • 例如,对于 w = [1, 3],挑选下标 0 的概率为 1 / (1 + 3) = 0.25 (即,25%),而选取下标 1 的概率为 3 / (1 + 3) = 0.75(即,75%)。

使用前缀和构造范围,然后使用二分查找来找随机数对应区域的索引。

📎 参考

  • 【题单】数学算法
  • 9. 回文数470. 用 Rand7() 实现 Rand10()
    Loading...
    目录