题解 | #跳跃游戏(一)#

跳跃游戏(一)

https://www.nowcoder.com/practice/23407eccb76447038d7c0f568370c1bd

2022.0913算法第57题跳跃游戏(一)
这道题目使用贪心算法,代码简单,但是感觉还是挺难想的
每次都要找到当前位置所能跳到的最远位置,在最远位置内的位置都是能够到达的,
bool canJump(vector<int>& nums) {
        //记录当前位置能够到达的最远位置
        //i + nums[i]位当前位置能够到达的最远位置,这个是一步
        //需要记录的是之前所有位置能够到达的最远位置,也就是最终结果的最远位置,这个是多步
        int end = 0;
        //遍历数组,查看是否能够到达
        for (int i = 0; i < nums.size(); i++) {
            //当最远位置小于当前位置时,表明当前位置不能达到,返回false
            if (i > end) return false;
            //否则更新最远边界,确保最远边界始终最远。
            end = max(end, i + nums[i]);
        }
        //循环结束表明每个位置都能达到
        return true;
    }
还是有点懵懂,过段时间还要复习。

#算法题#
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务