leetcode-55. 跳跃游戏
-
设置k为每次起跳最远能到哪里
-
循环遍历,i为当前所在格子,每次判断一下k能否达到当前格子
-
每次循环维护k,k一直为能最远跳到的距离,取上次k与当前格子+当前能跳到最远的距离的最大值。
public boolean canJump(int[] nums) {
int k = 0; //跳完最远能到那
for(int i = 0; i < nums.length; i++){
if(i > k){
return false;//如果当前的位置超过了跳完最远的位置,直接返回false
}
k = Math.max(k, i + nums[i]); //维护跳完最远的距离,取(上一次最远能到的距离,现在所在的位置+能跳的距离也就是这一次能跳到的位置)的最大值
}
return true;
}