力扣刷题-55.跳跃游戏

给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。

class Solution {
public:
    bool canJump(vector& 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类型,所以不用管中间是怎么走的,且可以直接跨过第一个)

你可能感兴趣的:(C++练手,leetcode,游戏,算法)