"837. New 21 Game" medium, accepted solution.

This commit is contained in:
2022-10-16 18:53:57 +03:00
parent 5093a17767
commit 88dc0264be

View File

@@ -394,18 +394,25 @@ func New21Game(n int, k int, maxPts int) float64 {
return 1
}
p := make([]float64, n+1)
if n >= k+maxPts {
return 1
}
p := make([]float64, k+maxPts)
m := float64(maxPts)
p[0] = 1
p[1] = p[0] / m
sum := 1.0
for i := 2; i <= k; i++ {
p[i] = p[i-1] + p[i-1]/m
}
for i := k + 1; i <= n; i++ {
p[i] = p[i-1] + p[i-1]/m - p[i-k]
for i := 1; i <= n; i++ {
p[i] = sum / m
sum += p[i]
if i-maxPts >= 0 {
sum -= p[i-maxPts]
}
if i >= k {
sum -= p[i]
}
}
sumP := float64(0)