思考了很久,以为是什么动态规划,深度优先搜索啥的,看到标题就~ 跑偏了
后来,自己一种种情况画图,一遍遍走,发现都是在前一种情况的基础上,新增一步只有两种可能性:可以和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];
}
};