跳跃游戏.力扣55

一、题目描述

跳跃游戏.力扣55_第1张图片

二、思路

根据题意,数组中每个位置可到达的最远位置为 i + nums[i] ,用for循环遍历数组,记录从起始位置开始体跳跃可到达的最远位置并更新,当可到达的最远位置小于数组的下标时,说明最后一个位置不可达

三、代码实现

class Solution {
    public boolean canJump(int[] nums) {
        //可到达的最远位置
        int reach = 0;
        int n = nums.length;
        for(int i = 0;i < n;i++){
            //当数组下标大于可到达的最远位置时,说明最后一个位置不可达
            if(reach < i){
                return false;
            }
            //更新可到达的最远位置
            reach = Math.max(i+nums[i],reach);
        }
        return true;
    }
}

你可能感兴趣的:(力扣,算法,leetcode,java)