"837. New 21 Game" medium, accepted solution.
This commit is contained in:
@@ -394,18 +394,25 @@ func New21Game(n int, k int, maxPts int) float64 {
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
p := make([]float64, n+1)
|
if n >= k+maxPts {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
p := make([]float64, k+maxPts)
|
||||||
m := float64(maxPts)
|
m := float64(maxPts)
|
||||||
|
|
||||||
p[0] = 1
|
p[0] = 1
|
||||||
p[1] = p[0] / m
|
sum := 1.0
|
||||||
|
|
||||||
for i := 2; i <= k; i++ {
|
for i := 1; i <= n; i++ {
|
||||||
p[i] = p[i-1] + p[i-1]/m
|
p[i] = sum / m
|
||||||
|
sum += p[i]
|
||||||
|
if i-maxPts >= 0 {
|
||||||
|
sum -= p[i-maxPts]
|
||||||
|
}
|
||||||
|
if i >= k {
|
||||||
|
sum -= p[i]
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := k + 1; i <= n; i++ {
|
|
||||||
p[i] = p[i-1] + p[i-1]/m - p[i-k]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sumP := float64(0)
|
sumP := float64(0)
|
||||||
|
|||||||
Reference in New Issue
Block a user