题目描述:
给定一个非负整数数组
nums
,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个下标。
解题思路:
遍历数组,有一个初始能量,然后每一次前进一次,判断当前能量与前进的这个地方能量谁大,(每次前进时当前能量眼减一,就相当于跳了一下),如果某时当前能量为0,那就说明跳不动了。
Java代码实现:
class Solution {
public boolean canJump(int[] nums) {
if(nums.length == 1){
return true;
}
int currentPower = nums[0];
for(int i = 1;i < nums.length;i++){
if(currentPower == 0){
return false;
}
currentPower = Math.max(currentPower-1, nums[i]);
}
return true;
}
}