LeetCode每日一题 | 1696. 跳跃游戏 VI

题目描述

给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。

一开始你在下标 0 处。每一步,你最多可以往前跳 k 步,但你不能跳出数组的边界。也就是说,你可以从下标 i 跳到 [i + 1, min(n - 1, i + k)] 包含 两个端点的任意位置。

你的目标是到达数组最后一个位置(下标为 n - 1 ),你的 得分 为经过的所有数字之和。

请你返回你能得到的 最大得分 。

问题分析

状态表示:dp[i]表示到达位置 i 的最大得分

初始状态:dp[0] = nums[0]

状态计算:dp[i] = max{dp[j]},其中max(0,i−k) <= j < i

其中前 k 步的最大值,可以用一个双端队列进行维护。

程序代码

func maxResult(nums []int, k int) int {
   
    n := len(nums)
    dp := make([]int, n)
    dp[0] = nums[0]
    // 双端队列
    q := make([]int, n)
    qi, qj := 0, 1
    for i := 1; i < n; i++ {
   
        // 容量超了
        for qi < qj && q[qi] < i - k {
   
            qi++
        }
        dp[i] = dp[q[qi]] + nums[i]
        // 比你年轻,能力还比你强
        for qi < qj && dp[q[qj - 1]] <= dp[i] {
   
            qj--
        }
        q[qj] = i
        qj++
    }
    return dp[n-1]
}

相关推荐

  1. LeetCode每日 | 1696. 跳跃游戏 VI

    2024-02-06 08:28:02       53 阅读
  2. 【力扣每日】力扣1696跳跃游戏VI

    2024-02-06 08:28:02       63 阅读
  3. LeetCode每日 | 1686. 石子游戏 VI

    2024-02-06 08:28:02       61 阅读
  4. 每日 力扣1696跳跃游戏

    2024-02-06 08:28:02       60 阅读
  5. LeetCode每日 | 1690. 石子游戏 VII

    2024-02-06 08:28:02       48 阅读
  6. LeetCode每日跳跃游戏 II

    2024-02-06 08:28:02       23 阅读
  7. LC 1696. 跳跃游戏 VI

    2024-02-06 08:28:02       48 阅读
  8. 单调队列优化DP,LeetCode1696. 跳跃游戏 VI

    2024-02-06 08:28:02       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-06 08:28:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-06 08:28:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-02-06 08:28:02       82 阅读
  4. Python语言-面向对象

    2024-02-06 08:28:02       91 阅读

热门阅读

  1. Spring Boot(六十五):使用 ant.jar 执行 SQL 脚本文件

    2024-02-06 08:28:02       56 阅读
  2. [英语学习][27][Word Power Made Easy]的精读与翻译优化

    2024-02-06 08:28:02       58 阅读
  3. Spring Boot项目监控异常,发送邮件

    2024-02-06 08:28:02       51 阅读
  4. 【PyTorch】实现迁移学习框架DaNN

    2024-02-06 08:28:02       52 阅读
  5. seatunnel数据集成(二)数据同步

    2024-02-06 08:28:02       55 阅读
  6. Uni-app 学习笔记

    2024-02-06 08:28:02       56 阅读
  7. 【无标题】summarizations onMysql

    2024-02-06 08:28:02       51 阅读
  8. Linux服务器设置 SSH 通过密钥登录(免密登录)

    2024-02-06 08:28:02       50 阅读
  9. ubuntu22.04挂载磁盘的步骤

    2024-02-06 08:28:02       52 阅读