一、题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。
示例1:
输入
4
返回值
3
二、思路分析
难度:入门
典型的递归算法实例之一,所以我们首先想到递归算法解决该问题。另外,我们还可以使用动态规划的思想。
三、AC 代码
语言:C++
1. 递归法
int Fibonacci(int n) {
if (n == 0 || n == 1)
return n;
return Fibonacci(n-1) + Fibonacci(n-2);
}
2. 动态规划
int Fibonacci(int n) {
vector<int> dp(n+1, 0);
dp[1] = 1;
for (int i=2; i<=n; ++i) {
dp[i] = dp[i-1] + dp[i-2];
}
return dp[n];
}
四、总结
这类题目基本上都可以使用递归和动态规划解决,类似的题目以后遇到我们再细聊。