[leetcode]Jump Game

开始想法扫描一次。。。然后再标记一次。。。O(n^2)

但是。。。TLE啦。。。太暴力了。。。

其实只要标记过了的,我们就不用处理了。。。

然后如果到达一个可到达的地方,而且要jump到没有标记的地方,那么我们再标记吧,O(n)

 

class Solution {
public:
    bool canJump(int A[], int n) {
        vector<bool> f(n,false);
        f[0] = true;
        int maxi = 0;
        for(int i = 0 ; i < n ; i++){
            if(f[i])
            {
                if(i + A[i] > maxi)
                {
                    for(int j = maxi + 1 ; j <= i + A[i] && j < n ; j++)
                        f[j] = true;
                    maxi = i + A[i];
                }
            }
        }
        return f[n-1];
    }
};

 

你可能感兴趣的:(LeetCode)