天天看點

Leetcode——55. Jump Game

題目原址

解題思路

給定一個數組,數組的下标表示你目前所在的位置,數組中的元素值表示你一次可以最大跳躍的步數,現在假設你在0位置上,判斷是否可以跳到最末尾的位置。

使用貪心算法解決該題。使用兩個指針

temp

maxReach

temp

用來表示目前位置,

maxReach

用來表示下一步能夠到達的最遠位置。在每次的周遊中都更新

maxReach

的值,以確定

maxReach

的值為每次周遊的最大值。直到周遊到數組末尾。這裡面如果

maxReach

的值超過了數組的長度就說明能夠到達數組的末尾。

AC代碼

class JumpGame {
    public boolean canJump(int[] nums) {
        int maxReach = ;
        int temp = ;
        while(temp <= maxReach && temp < nums.length) {
            maxReach = Math.max(maxReach, temp + nums[temp]);
            temp ++;
        }

        return maxReach >= nums.length - ;
    }
}