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

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

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

0 <= j <= nums[i]

i + j < n

返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 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]
相关推荐
闻缺陷则喜何志丹5 分钟前
【二分查找】P9822 [ICPC2020 Shanghai R] Walker【有误差】|普及
开发语言·算法·r语言
橘颂TA5 分钟前
【剑斩OFFER】算法的暴力美学——K 个一组翻转链表
c++·算法·力扣·结构与算法
hui函数7 分钟前
python全栈入门到实战【基础篇 02】环境搭建:Python解释器与PyCharm、VSCode编辑器安装配置详解
开发语言·python
一起养小猫8 分钟前
LeetCode100天Day11-两数之和与合并两个有序数组
数据结构·算法·leetcode
venus6010 分钟前
上海计算机学会2025年8月月赛丙组T1镜像加密题解
开发语言·c++·算法
weixin_3903084611 分钟前
Ubuntu运行python程序步骤
python
智航GIS13 分钟前
8.9 装饰器
开发语言·python
我命由我1234518 分钟前
LangChain 学习 - Langchain Model IO(环境安装、大模型应用开发、模型分类、模型消息)
人工智能·python·ai·语言模型·pycharm·langchain·python3.11
0和1的舞者20 分钟前
Python库使用全攻略:从入门到实战
python·学习·知识·案例
YJlio21 分钟前
PsPing 学习笔记(14.6):直方图视图——可视化延迟分布与抖动
开发语言·笔记·python·学习·eclipse·pdf·github