面试经典-15-跳跃游戏 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]。

示例 1:

输入: nums = [2,3,1,1,4]

输出: 2

解释: 跳到最后一个位置的最小跳跃数是 2。

从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。

java 复制代码
class Solution {
    // 成功
    public int jump(int[] nums) {
        int n = nums.length;
        int[] dp = new int[n];
        dp[0] = 0;
        for (int i = 1; i < n; i++) {
            int min = Integer.MAX_VALUE;
            for (int j = 0; j < i; j++) {
                if (nums[j] + j >= i) {
                    min = Math.min(min, dp[j] + 1);
                }
            }
            dp[i] = min;
        }
        return dp[n - 1];
    }
}
相关推荐
黑岚樱梦5 分钟前
代码随想录打卡day25:56.合并区间
数据结构·算法
自由生长202411 分钟前
科普-BOM是什么?和UTF-8什么关系?
算法
小年糕是糕手30 分钟前
【数据结构】常见的排序算法 -- 插入排序
c语言·开发语言·数据结构·学习·算法·leetcode·排序算法
墨染点香1 小时前
LeetCode 刷题【142. 环形链表 II】
算法·leetcode·链表
海琴烟Sunshine1 小时前
leetcode 263. 丑数 python
python·算法·leetcode
信仰_2739932431 小时前
Guava Cache淘汰算法
算法·guava
Bluesonli1 小时前
第五章:构建用户界面(UMG) - 游戏内HUD
游戏·ui
散峰而望1 小时前
C++入门(二) (算法竞赛)
开发语言·c++·算法·github
Cx330❀2 小时前
《C++ 搜索二叉树》深入理解 C++ 搜索二叉树:特性、实现与应用
java·开发语言·数据结构·c++·算法·面试
不染尘.2 小时前
2025_11_5_刷题
开发语言·c++·vscode·算法·贪心算法·动态规划