思考了很久,以为是什么动态规划,深度优先搜索啥的,看到标题就~ 跑偏了

后来,自己一种种情况画图,一遍遍走,发现都是在前一种情况的基础上,新增一步只有两种可能性:可以和dp[i-1]的最后一步连着,也可以和dp[i-1]的最后一步断开,就这两种,即*2

class Solution {
public:
    int jumpFloorII(int number) {
        vector<int> dp(number+1,0);
        dp[0]=0;
        dp[1]=1;
        int i=2;
        while(i<=number)
        {
            dp[i]=dp[i-1]*2;
            i++;
        }
        return dp[number];
    }
};