其實拿到這道題,我並沒有看出來用什麼做。只是覺得是一道概率的題。然後看了一下標籤爲動態規劃~
覺得這種描述性比較強的題很難,首先得從問題中將關鍵信息抽取出來。比如這裏的N,K,W
我還是康了一下官方題解。。。
這個遞推方程還是需要點計算才能看出來。
class Solution {
public:
double new21Game(int N, int K, int W) {
vector<double> dp(N + W + 1, 0);
for(int i = K; i <= N; i ++) dp[i] = 1;
double t = 0;
for(int i = K; i <= K + W - 1; i ++) t += dp[i];
for(int i = K - 1; i >= 0; i --){
dp[i] = t / W;
t -= dp[i + W];
t += dp[i];
}
return dp[0];
}
};
這一題對於我來說挺難的,最近畢業閒事比較多,今天沒有時間做web了,痛哭。。。