Leetcode热题100(跳跃游戏 II)

题目描述

给定一个长度为 n 的 0 索引 整数数组 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,题目也保证能到达最后的位置。

相关推荐
2601_967979122 小时前
机器学习必修课:经典算法与Python实战
python·算法·机器学习·实战·课程
程序猿打工仔2 小时前
计算机基础(C语言)考编、专技岗
c语言·开发语言·算法
通信小呆呆3 小时前
电子战干扰技术:从“蛮力压制”到“精准欺骗”,再到“认知博弈”
算法·通信·isac
老师我太想进步了20263 小时前
【数据结构-6】算法美学之单链表(1)
数据结构·算法
Hello_Pyhx4 小时前
Pavise v3.3.0.8 配置指南:从游戏识别到会话恢复
游戏
希望我万事顺遂4 小时前
力扣hot100-滑动窗口最大值
数据结构·算法·leetcode
꧁细听勿语情꧂4 小时前
二叉树余题,排序、直接插入排序、希尔排序
c语言·开发语言·数据结构·算法
是main不是漫5 小时前
【双指针|LeetCode1089 复写零】巧用逆向思路,破解原地覆盖陷阱
数据结构·算法·leetcode
专注仿真14 小时前
知识问答模型用到的算法集详解及代码实例
python·算法·代码·大模型训练·控制算法
罗西的思考15 小时前
【轻量化复刻大模型 / KIMI K3】AttnRes 模块交互式演示
人工智能·算法·机器学习