题目描述:
解法思路:
求斐波那契数列,最重要的是掌握递归的思想,就是当n大于等于2时,n等于前两个数之和。但是力扣中有时间限制,使用递归的方法会超出限定时间。所以我们可以使用动态规划的方法,定义一个for循环,定义变量fn,f0,f1。fn等于f0加上f1然后取模的值,然后f0等于原来f1的值,f1等于原来fn的值,这样相当于元素往后移一位。当循环结束时候,返回fn即可。
代码实现:
class Solution {
public int fib(int n) {
int f0=0,f1=1,fn=0;
if(n==0||n==1) return n;
else{
for(int i=2;i<=n;i++){
fn=(f0+f1)%1000000007;
f0=f1;
f1=fn;
}
return fn;
}
}
}
执行结果: