Leetcode热题100(跳跃游戏 II)

题目描述

给定一个长度为 n0 索引 整数数组 nums。初始位置在下标 0。

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

  • 0 <= j <= nums[i]
  • i + j < n

返回到达 n - 1 的最小跳跃次数。测试用例保证可以到达 n - 1。

题解:

java 复制代码
class Solution {
    public int jump(int[] nums) {
        int end = 0;
        int maxPosition = 0;
        int steps = 0;
        for(int i = 0; i < nums.length - 1;i++){
            maxPosition = Math.max(maxPosition,nums[i]+i);
            if(i == end){
                end = maxPosition;
                steps++;
            }
        }
        return steps;
    }
}

思路:

本题的关键在于怎么判断该路径是不是次数最小的路径,需要使用一个变量记录能跳的最远的位置。当前位置等于能跳的最远的位置才更新能跳的最远的位置,同时步数加1,并且不要遍历最后一个元素,因为i==0的使用步数已经加1,题目也保证能到达最后的位置。

相关推荐
ShallWeL7 小时前
【机器学习】(16)—— 数值数据
人工智能·python·算法·机器学习·数据分析
hongyucai8 小时前
详解rlinf强化学习四步曲
人工智能·python·算法·架构
变量未定义~8 小时前
ST表-龙骑士军团【算法赛】
数据结构·算法
小帽子_1238 小时前
储能 SOC/SOH 精准估算技术:储能工况下算法优化与误差修正方案
算法
hhlongg8 小时前
FFT分析
算法
水龙吟啸9 小时前
华为2026.6.17机考选择题+编程题【速刷敲黑板】
人工智能·深度学习·算法·华为
凌波粒9 小时前
LeetCode--53. 最大子序和(贪心算法)
算法·leetcode·贪心算法
Hesionberger9 小时前
快速求解完全平方数的最少数量
开发语言·数据结构·python·算法·leetcode·c#
c238569 小时前
《序列 DP:C++ 中的“最长”套路与编辑距离》
c++·算法·动态规划