給定一個非負整數數組,你最初位于數組的第一個位置。
數組中的每個元素代表你在該位置可以跳躍的最大長度。
判斷你是否能夠到達最后一個位置。
示例?1:
輸入: [2,3,1,1,4]
輸出: true
解釋: 我們可以先跳 1 步,從位置 0 到達 位置 1, 然后再從位置 1 跳 3 步到達最后一個位置。
示例?2:
輸入: [3,2,1,0,4]
輸出: false
解釋: 無論怎樣,你總會到達索引為 3 的位置。但該位置的最大跳躍長度是 0 , 所以你永遠不可能到達最后一個位置。
思路:沿途判斷是否能到這里,并且更新下一步能到的最遠處。
class Solution {public boolean canJump(int[] nums) {int maxIndex=0;int len=nums.length;for(int i=0;i<len;++i){if(i>maxIndex)return false;if(maxIndex<i+nums[i])maxIndex=i+nums[i];}return true;}
}