跳跃游戏 java

LL_break 2025-05-21 22:16:31

 

跳跃游戏

for (int i = 0; i < nums.length; i++):这个循环遍历数组中的每一个位置。

if (i > reach):如果当前遍历到的位置 i 超过了所能达到的最远位置 reach,这意味着无法从之前的位置跳跃到当前位置,也就不可能到达最后一个下标,所以直接返回 false

reach = Math.max(reach, i + nums[i]):这一步更新 reach 的值。i + nums[i] 表示从当前位置 i 出发,能够跳跃到的最远位置。通过 Math.max 函数,将当前的 reach 值和 i + nums[i] 进行比较,取较大值作为新的 reach。这样可以不断更新从起始位置出发能够到达的最远位置。

class Solution {
     public boolean canJump(int[] nums) {
        int reach = 0;
        for (int i = 0; i < nums.length; i++) {
            if (i > reach) {
                return false;
            }
            reach = Math.max(reach, i + nums[i]);
        }
        return reach >= nums.length - 1;
    }
}

 

 

 

...全文
7 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

118

社区成员

发帖
与我相关
我的任务
社区描述
这里专为新疆政法学院的探索者而建,英雄不问出处。起跑线是起点,热忱与坚持为加速器,无论bug缠身的项目,还是攻克的算法顿悟,每滴汗水皆被珍藏。执炬前行,终将照亮彼此峰顶,我们携手同行。
课程设计笔记经验分享 高校 新疆·图木舒克市
社区管理员
  • 雲中203
  • SHAO060706
  • Poeir_
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

英雄不问出处

试试用AI创作助手写篇文章吧