Every day a leetcode
题目来源:70. 爬楼梯
解法1:斐波那契数列
代码:
int f(int n)
{
if(n == 1) return 1;
else if(n == 2) return 2;
else return climbStairs(n-1)+climbStairs(n-2);
}
int climbStairs(int n){
return f(n);
}
结果:

解法2:动态规划
代码:
int climbStairs(int n){
int *dp;
dp=(int*)malloc((n+2)*sizeof(int));
dp[1]=1;
dp[2]=2;
for(int i=3;i<=n;i++) dp[i]=dp[i-1]+dp[i-2];
return dp[n];
}
结果:

1170



被折叠的 条评论
为什么被折叠?



