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];
}
结果:

这篇博客探讨了70号LeetCode问题——爬楼梯,通过两种不同的算法思路进行求解。解法1使用斐波那契数列,递归地计算每个台阶的可能性;解法2则采用动态规划,通过存储中间结果避免重复计算,提高了效率。两种方法都给出了对应的C++代码实现。
481

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



