New 21 Game LeetCode solution in JavaScript

1
var new21Game = function (n, k, maxPts) {
2
if (k + maxPts <= n || k === 0) return 1;
3

4
let dp = [];
5
dp[0] = 1;
6
dp[1] = 1 / maxPts;
7

8
for (let i = 2; i <= n; i++) {
9
dp[i] = 0;
10

11
if (i <= k) {
12
dp[i] = (1 + 1 / maxPts) * dp[i - 1];
13
} else {
14
dp[i] = dp[i - 1];
15
}
16
if (i > maxPts) {
17
dp[i] -= dp[i - maxPts - 1] / maxPts;
18
}
19
}
20

21
return dp.reduce((acc, cur, idx) => {
22
if (idx >= k) {
23
acc += cur;
24
}
25
return acc;
26
}, 0);
27
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0