力扣打卡2022/2/27
题目
给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。
思路
- 可以用动态规划的思想,递推出,每一次循环后的最大后边界点在哪。
- 设定一个最大后边界点变量right,遍历整个数组,每次循环刷新一下right变量的值,并判断循环能否继续下去,不能继续下去就说明不能达到末端,返回false。
- 如果循环能够正常结束,返回true。
Java代码
class Solution {
public boolean canJump(int[] nums) {
int right = nums[0];
for(int i=1;i<nums.length;i++){
if(right<i)
return false;
right = Math.max(right,nums[i] + i);
}
return true;
}
}