跳躍游戲
中等
給你一個非負整數數組 nums ,你最初位于數組的 第一個下標 。數組中的每個元素代表你在該位置可以跳躍的最大長度。
判斷你是否能夠到達最后一個下標,如果可以,返回 true ;否則,返回 false 。
示例 1:
輸入:nums = [2,3,1,1,4]
輸出:true
解釋:
可以先跳 1 步,從下標 0 到達下標 1, 然后再從下標 1 跳 3 步到達最后一個下標。
示例 2:
輸入:nums = [3,2,1,0,4]
輸出:false
解釋:
無論怎樣,總會到達下標為 3 的位置。但該下標的最大跳躍長度是 0 , 所以永遠不可能到達最后一個下標。
思路
一步一步進行移動并且判斷當前的位置加上其值是否可以超過剛剛的最大值,直到遍歷到超過該最大值的位置,如果沒有那么返回True,否則在遍歷中出現了移動的最大值跟不上遍歷的i值那么返回False
代碼
class Solution {public boolean canJump(int[] nums) {int k =0;for(int i =0;i<nums.length;i++){if(i>k) return false;k = Math.max(k,i+nums[i]);}return true;}
}