New 21 Game LeetCode solution in C++
1class Solution {2public:3double new21Game(int n, int k, int maxPts) {4if (k == 0 || n >= k + maxPts - 1) return (double)1;5vector<double> dp(n + 1);6dp[0] = 1;7double sum = 0;8for (int i = 0; i < n; i++) {9if (i < k) sum += dp[i]; // reach f(2) by directly drawing f(2) or f(1) and f(1)10if (i >= maxPts) sum -= dp[i - maxPts];1112dp[i + 1] = sum / maxPts;13}14double ret = 0;15for (int i = k; i <= n; i++) ret += dp[i];16return ret;17}18};