jump-game

给出一个非负整数数组,你最初定位在数组的第一个位置。   

数组中的每个元素代表你在那个位置可以跳跃的最大长度。    

判断你是否能到达数组的最后一个位置。

样例

A = [2,3,1,1,4],返回 true.

A = [3,2,1,0,4],返回 false.

class Solution {
public:

    bool canJump(vector<int> A) {
        int n=A.size();
        if(n==0) return false;
        vector<bool>dp(n,false);
        dp[n-1]=true;
        for(int i=n-2;i>=0;i--){
            if(i+A[i]>=n-1){
                dp[i]=true;
                continue;
            }
            for(int j=i+1;j<n&&j<=i+A[i];j++){
                if(dp[j]){
                    dp[i]=true;
                    break;
                }
            }
            
        }
        return dp[0];
    }
};




你可能感兴趣的:(jump-game)