LeetCode 837. 新21点
作者:互联网
思路动态规划问题,从后往前考虑。
在优化时间复杂度的时候,将前后两项相同的部分消去。
关于找状态转移方程的方法,一点感悟是:先定数组形式。一维数组找前后关系,二维数组找临近关系。
代码:
class Solution {
public:
double new21Game(int N, int K, int W) {
if(K == 0) return 1.0;
vector<double> res(K + W);
for(int i = K; i <= N; i++) res[i] = 1.0;
res[K - 1] = 1.0 * min(N - K + 1,W) / W;
for(int i = K - 2; i >=0; i--){
res[i] = res[i + 1] - (res[i + W + 1] - res[i + 1]) / W;
}
return res[0];
}
};
标签:return,837,int,res,前后,数组,1.0,LeetCode,21 来源: https://blog.csdn.net/qq_43078427/article/details/114541220