可以利用动态规划(当数列公式存在递推关系的时候可以考虑动态规划),所谓的动态规划就是:
刚开始的初始值是0,0,1,从右往左移动 r = p + q
class Solution {
public:
int fib(int n) {
// 利用动态数组的原理进行斐波那契数列
// 不能使用递归 因为会超时
if(n < 2) return n;
int MOD = 1000000007;
int q = 0,p = 0, r = 1;
for(int i = 2;i <= n;i++)
{
q = p;
p = r;
r = (p + q) % MOD;
}
return r;
}
};