【LeetCode】每日一题:跳跃游戏 II

给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums0

每个元素 numsi 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 numsi 处,你可以跳转到任意 numsi + j 处:

0 <= j <= numsi

i + j < n

返回到达 numsn - 1 的最小跳跃次数。生成的测试用例可以到达 numsn - 1

解题思路

DP

AC代码

python 复制代码
class Solution:
    def jump(self, nums: List[int]) -> int:
        if len(nums) < 2:
            return 0
        if len(nums) == 2:
            return 1

        n = len(nums) - 1
        f = [1001 for _ in nums]

        for i in range(n - 1, -1, -1):
            if nums[i] + i >= n:
                f[i] = 1
            else:
                f[i] = 1 + min(f[i+1:i+nums[i]+1]) if nums[i] != 0 else 1001
        return f[0]
相关推荐
IT_Octopus3 分钟前
JSON 日志里的 `{“$ref“:“$.xxx“}`:从 fastjson 兼容包到原生 fastjson2 的迁移实录
开发语言·python·json
geovindu4 分钟前
python:HandWriting Recognition using paddlepaddle
开发语言·后端·python·paddlepaddle
CoderYanger13 分钟前
A.每日一题:1140. 石子游戏 II
java·程序人生·算法·leetcode·游戏·职场和发展·深度优先
小雨笙笙16 分钟前
机器学习:评估模型与选择
人工智能·算法·机器学习
高亦真20 分钟前
今天是学习嵌入式的第35天
linux·学习·算法
HugoStudio_SWAN32 分钟前
洛谷 P1319 / P1320 压缩技术——同一枚硬币的正反面
c++·学习·程序人生·算法
wuyk55537 分钟前
Python 零基础入门第九章:用户输入与 While 循环
开发语言·python
兮动人41 分钟前
Python变量与常量
开发语言·python·机器学习·python变量与常量
2601_962300811 小时前
机器学习的理想基石
人工智能·python·机器学习·编程语言·数据处理
Java后端的Ai之路1 小时前
21、Python - 命令模式
开发语言·人工智能·python·命令模式·外观模式