算法刻意练习-LeetCode实战28-跳跃游戏(C++)

题目:跳跃游戏

原题链接:跳跃游戏

这道题刚开始自己做时出了点错,无法AC,于是看了解答,发现下面这种解答极为精妙。

每次更新当前节点能够到达的最远距离,如果当前节点到达的最远距离小于当前节点的偏移量,那么就判断不能到达。代码如下:

class Solution {
public:
    bool canJump(vector<int>& nums) {
        int k = 0;
        for(int i = 0; i < nums.size(); i++){
            if(k < i) return false;
            k = max(k, i + nums[i]);
        }
        return true;
    }
};

原解答连接:别想那么多,就挨个跳吧

题外话:
对大多数人而言,人生不是什么冒险,而是一股莫之能御的洪流。
——雷蒙德·卡佛

你可能感兴趣的:(leetcode)