给你一个非负整数数组 nums
,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个下标,如果可以,返回 true
;否则,返回 false
。
class Solution {
public:bool canJump(vector<int>& nums) {
int A=1;
if(nums.size()==1)
{return true;}
for (int i=nums.size()-2;i>=0;i--){if(nums[i]>=A){A=1;}else{A++;}if(i==0&&A>1){return false;}}return true;}};
代码逻辑为从后往前不断遍历,直到发现走的路到0为止,且走过的路大于1,说明跳跃成功(其实是取巧了,因为只用输出bool类型,所以不用管中间是怎么走的,且可以直接跨过第一个)