力扣55.跳跃游戏

力扣55.跳跃游戏,第1张

解题思路:

抓住游戏本质时希望跳的最远,我们可以发现下标加上所对应的元素就是可以跳到的最大位置,我们可以建立一个数组来存放每个位置时可以跳到的最远位置,设置一个整数sum来表示在当前位置还能跳多远,之后就可以遍历数组,当sum<此时位置的n时,更新sum,直到遍历结束或中间停止。


C++详细代码:

class Solution {
public:
    bool canJump(vector& nums) {
    int n[nums.size()];
    int sum,z=0;
    for(int i=0;i
        n[i]=i+nums[i];
    }
    sum=n[0];
    while(z<=sum&&z
        if(sum
            sum=n[z];
        }
        if(sum==n[z]&&nums[z]==0)
            return false;
        z++;

    }
    if(z==nums.size()-1)
        return true;
    else
        return false;
    }
};

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/563686.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-02
下一篇 2022-04-02

发表评论

登录后才能评论

评论列表(0条)

保存