经典递归,dp[i] = dp[i-1]+dp[i-2],从0 算到n-1 ,返回dp[n-1]
dp[0] = 1
dp[1] = 一步先到[0] 或者2步直接到[1] =2
int climbStairs(int n) {
int *dp = calloc(n, sizeof(int));
dp[0] = 1;
dp[1] = 2;
for(int i = 2;i < n;i++)
dp[i] = dp[i-1]+dp[i-2];
return dp[n-1];
}
网友评论