首页 > 代码库 > leetcode Jump Game

leetcode Jump Game

这题和那题类似,这题更简单。我当初就做了这题。当初的代码如下:

class Solution {public:    bool canJump(int A[], int n) {        if (n < 2)            return true;        int canReach = 0;         for (int i = 0; i < n; ++i)        {            if (i > canReach)                return false;            canReach = max(canReach, i + A[i]); // 判断和更新不要顺序颠倒了,否则犯错        }        return true;    }};

现在做的如下:

class Solution {public:    bool canJump(int A[], int n) {        if(n < 2) return true;        int canReach = A[0];        for (int i = 1; i <= canReach; i++)        {            canReach = max(canReach, A[i] + i);            if (canReach >= n - 1) return true;        }        return false;    }};

两个思路都对。

leetcode Jump Game