跳跃游戏(每日一题-中等)

跳跃游戏(每日一题-中等)_第1张图片

题解:定义一个变量,用来存储可以到达的最远位置。初始化为0。

然后对数组进行遍历,遍历开始的时候,先判断当前这个位置和最远位置谁大,如果最远位置比较大,那么就说明当前这个位置也能达到,就看看再加入当前这个位置的步数能否达到更远的位置,对最远位置进行更新。如果当前位置比较大,就说明到不了目前这个位置,就肯定到不了数组末尾,返回false

class Solution {
    public boolean canJump(int[] nums) {
        int maxnum=0;
        for(int i=0;imaxnum){
                return false;
            }
            maxnum=Math.max(maxnum,i+nums[i]);
        }
        return true;
    }
}

你可能感兴趣的:(游戏,算法)