跳上第n级台阶,最后一步可能是从第n-1,n-2,n-3…2,1级台阶上跳上来的
所以dp[n] = dp[n-1]+dp[n-2]+dp[n-3]…+dp[2]+dp[1]+1;
dp[n-1] = dp[n-2]+dp[n-3]+dp[n-4]+…+dp[2]+dp[1]+1;
最后得出 dp[n] = dp[n-1]2;
class Solution {
public:
int jumpFloorII(int number) {
int dp[number+10]; dp[1] = 1;
for(int i=2;i<=number;i++){
dp[i] = 2*dp[i-1];
}
return dp[number];
}
};
/*
跳上第n级台阶,最后一步可能是从第n-1,n-2,n-3.....2,1级台阶上跳上来的
所以dp[n] = dp[n-1]+dp[n-2]+dp[n-3]....+dp[2]+dp[1]+1;
dp[n-1] = dp[n-2]+dp[n-3]+dp[n-4]+.....+dp[2]+dp[1]+1;
最后得出 dp[n] = dp[n-1]*2;
*/