力扣45.跳跃游戏II

复制代码
class Solution {
    public int jump(int[] nums) {
        // 初始化步数为0
        int step = 0;
        // 初始化当前能到达的最远位置为0
        int maxp = 0;
        // 初始化下一个跳跃的边界位置为0
        int end = 0;
        // 遍历数组,除了最后一个元素
        for(int i=0;i<nums.length-1;i++) {
            // 如果当前位置加上当前位置的值大于最远位置,更新最远位置
            if(nums[i] + i > maxp)
                maxp = nums[i]+i;
            // 如果当前位置等于下一个跳跃的边界位置
            if(end == i) {
                // 更新下一个跳跃的边界位置为最远位置
                end = maxp;
                // 步数加1
                step++;
            }
        }
        // 返回总步数
        return step;
    }
}
相关推荐
阿波罗尼亚1 分钟前
JDK17 新特性
java
独自破碎E2 分钟前
【面试真题拆解】Spring事务机制
java·spring·面试
我是咸鱼不闲呀4 分钟前
力扣Hot100系列21(Java)——[多维动态规划]总结(不同路径,最小路径和,最长回文子串,最长公共子序列, 编辑距离)
java·leetcode·动态规划
lihao lihao7 分钟前
二分查找
java·数据结构·算法
Albert Edison7 分钟前
【C++11】可变参数模板
java·开发语言·c++
WolfGang0073219 分钟前
代码随想录算法训练营 Day15 | 二叉树 part05
数据结构·算法
sheeta199810 分钟前
LeetCode 每日一题笔记 2025.03.20 3567.子矩阵的最小绝对差
笔记·leetcode·矩阵
代码栈上的思考10 分钟前
消息队列持久化:文件存储设计与实现全解析
java·前端·算法
sg_knight16 分钟前
设计模式实战:策略模式(Strategy)
java·开发语言·python·设计模式·重构·架构·策略模式