题目:
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
斐波那契数列公式为:
1.解题思路:
- 使用递归的方法是最简单的,但是效率成问题,有很多重复的计算。其实就是一种自顶向下的思想。
- 使用自底向上的思想,从n=2开始计算,并且每次保存前面两次计算的结果,以此进行下一次计算,这样就不会有重复的计算。复杂度为O(n)。
2.代码:
class Solution {
public:
int Fibonacci(int n) {
if(n <= 0)
return 0;
if(n == 1)
return 1;
int first = 0, second = 1, third = 0;
for (int i = 2; i <= n; i++) {
//模1000000007,可以保证值永远在int的范围内
third = (first + second) % 1000000007;
first = second;
second = third;
}
return third;
}
};