其他分享
首页 > 其他分享> > LeetCode 837. 新21点

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