【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]
相关推荐
阿里云大数据AI技术几秒前
MaxFrame 视频帧智能分析:从视频到语义向量的端到端分布式处理
人工智能·python
淘矿人13 分钟前
从0到1:用Claude启动你的第一个项目
开发语言·人工智能·git·python·github·php·pygame
code_pgf15 分钟前
Octo 算法详解-开源通用机器人策略模型技术报告
算法·机器人·开源
嘻嘻哈哈樱桃26 分钟前
牛客经典101题题解集--动态规划
java·数据结构·python·算法·职场和发展·动态规划
gmaajt28 分钟前
Golang怎么做国际化多语言_Golang i18n教程【核心】
jvm·数据库·python
maqr_11040 分钟前
CSS如何利用Sass定义全局阴影方案_通过变量实现统一CSS风格
jvm·数据库·python
脱氧核糖核酸__41 分钟前
LeetCode热题100——234.回文链表(两种解法)
c++·算法·leetcode·链表
IronMurphy42 分钟前
【算法四十二】118. 杨辉三角 198. 打家劫舍
算法
m0_6138562943 分钟前
uni-app怎么做类似于美团的商家评价星级 uni-app五星评分组件制作【实战】
jvm·数据库·python
电科一班林耿超1 小时前
第 16 课:动态规划专题(二)—— 子序列与子数组问题:面试最高频的 DP 题型
数据结构·算法·动态规划