JAVA解法
class Solution {
public boolean canJump(int[] nums) {
// 获取数组长度
int length = nums.length;
// 定义记录最大触及的右边界位置
int rightBoundary = 0;
// 判断每一步的下一步能触及的最大右边界范围是否大于数组长度,
// 若大于则说明能够到达最后一个下标的位置,否则说明不能达到。
for(int i = 0;i < length; i++){
if(i <= rightBoundary){
rightBoundary = Math.max(rightBoundary,i + nums[i]);
if(rightBoundary >= length - 1){
return true;
}
}
}
return false;
}
}
题解分析
根据题目要求,我们先获取数组的长度赋值给 length,并定义记录最大触及的右边界位置 rightBoundary。接下来 for 循环从第一步开始,判断每一步的下一步能触及的最大右边界范围是否大于数组长度,若大于则说明能够到达最后一个下标的位置,否则说明不能达到。
leetcode原题:55. 跳跃游戏
评论区