2024-08-11 16:41
Day 50 每日一題 Leetcode - **✍️ 528. Random Pick with Weight** 一個數組 `w` 裡面包含一些正整數。每個數字代表一個權重。 實作函數 `pickIndex()`這個函數會隨機選擇一個數組的索引並返回。選擇每個索引的機率不是平均的,而是根據權重來決定的 權重越大的索引,被選中的機會就越大。例如選中索引 i 的機率是:這個索引的權重 / 所有權重的總和 如果數組是 `[1, 3]`: - 選中索引 0 的機率是 1 / (1+3) = 25% - 選中索引 1 的機率是 3 / (1+3) = 75% **🧠 思考過程**  Brute Force: [1, 3] 建立一個 array 把每個權重對應的值放入,變成 [0, 1, 1, 1] 。 回傳 random[array] BS: [1, 3 ,2] 用 prefix sum 轉換為 [1 ,4, 6],這時候 random (1-6),假設數字是 2,用 BS 從 [1,4,6] 找到第一個 ≥ 2 的 idx 並回傳 T:O(n+logn) S:O(1)
5
回覆
0
轉發

作者

Jedi
jedile
profile
粉絲
457
串文
82+

回覆

轉發

24小時粉絲增長

無資料

互動率

(讚 + 回覆 + 轉發) / 粉絲數
1.09%

回覆 (BETA)

最先回覆的內容
發文後用戶內容

© 2025 Threadser.net. 版權所有。

Threadser.net 與 Meta Platforms, Inc. 無關,未經其認可、贊助或特別批准。

Threadser.net 也不與 Meta 的"Threads" 產品存在任何關聯。