思路

动态规划

代码

  1. var new21Game = function(N, K, W) {
  2. const dp = [1]
  3. let count = 0;
  4. for (let i = 1; i < N + 1; i++) {
  5. if (i - W - 1 >= 0) {
  6. count -= dp[i - W - 1];
  7. }
  8. if (i - 1 < K) {
  9. count += dp[i - 1]
  10. }
  11. dp[i] = count * (1 / W);
  12. }
  13. let res = 0;
  14. for (let i = K; i <= N; i++) {
  15. res += dp[i];
  16. }
  17. return res;
  18. };

复杂度

  • 时间复杂度 day36.[滑动窗口].837.新21点 - 图1#card=math&code=O%28N%29)
  • 空间复杂度 day36.[滑动窗口].837.新21点 - 图2#card=math&code=O%28N%29)