力扣刷題 837 新21點 動態規劃 滑動視窗

2021-10-06 19:38:32 字數 749 閱讀 1943

過程模擬:抽乙個數字累計到當前的總積分 i ,然後做判斷,如果 i 小於 k 則繼續抽下乙個數字,直到累計積分大於等於 k 則停止整個過程。

當前的積分 i 是在上一步的基礎上抽取乙個數字得到的,有以下幾種情況:

因此得到當前積分 i 的概率為以上所有情況的概率之和。不超過n的概率即為從 k 到 n 各概況之和。

當前的狀態是由之前已經發生的狀態值決定的,因此可以使用動態規劃來解決問題:

然後從 k 到 n 進行dp[i] 求和即為本題的結果。

class

solution}}

double res =0;

for(

int i = k;i<=n;i++

)//[k,n]求和

return res;}}

;

在求 dp[i] 的過程中,每個值都計算了 i-w到 i-1 的和,存在重複的計算過程,可以進行優化。區間 [i-w,i-1] 就是乙個固定大小為 w 的視窗,每次向右移動一步後,區間和是在之前的基礎上右側減少乙個元素,左側增加乙個元素。

刷題 力扣 21

題目鏈結 題目描述 將兩個公升序鍊錶合併為乙個新的 公升序 鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 1 輸入 l1 1,2,4 l2 1,3,4 輸出 1,1,2,3,4,4 示例 2 輸入 l1 l2 輸出 示例 3 輸入 l1 l2 0 輸出 0 題目分析 根據題目描述...

LeetCode 每日一題 837 新21點

愛麗絲參與乙個大致基於紙牌遊戲 21點 規則的遊戲,描述如下 愛麗絲以 0 分開始,並在她的得分少於 k 分時抽取數字。抽取時,她從 1,w 的範圍中隨機獲得乙個整數作為分數進行累計,其中 w 是整數。每次抽取都是獨立的,其結果具有相同的概率。當愛麗絲獲得不少於 k 分時,她就停止抽取數字。愛麗絲的...

力扣刷題 2 剪繩子II(動態規劃)

給你一根長度為 n 的繩子,請把繩子剪成整數長度的 m 段 m n都是整數,n 1並且 m 1 每段繩子的長度記為 k 0 k 1 k m 請問 k 0 k 1 k m 可能的最大乘積是 多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2 3 3的三段,此時得到 的最大乘積是18。答案需要取模...