Toasobi
斐波那契数列(简单)
本文最后更新于2023年03月03日,已超过566天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
这道题上来一个递归,按道理应该是正确的,但是递归会超出时间限制、
<div>
class Solution {
public int fib(int n) {
int num = 0;
if(n == 0)
return 0;
if(n == 1)
return 1;
//主函数
num += fib(n-1) + fib(n-2);
return num;
}
}
</div>
下面来看不同的解决方法
=========================
- 滚动数组(动态规划)
这里的滚动数组并不是真的数组,而是三个变量滚动赋值
初始的时候是001,一次后是011,两次过后是112......
<div>
class Solution {
public int fib(int n) {
final int MOD = 1000000007;
if (n < 2) {
return n;
}
int p = 0, q = 0, r = 1;
for (int i = 2; i <= n; ++i) {
p = q;
q = r;
r = (p + q) % MOD; //题目要求要取模
}
return r;
}
}
</div>