本题主要提供两种解法进行实现
- 递归求解
缺点:容易造成超出界限
class Solution {
public int fib(int n) {
if(n==0)
{
return 0;
}else if(n==1)
{
return 1;
}else{
return fib(n-1)+fib(n-2);
}
}
}
- 动态规划求解
//动态规划详解
class Solution {
public int fib(int n) {//斐波那契数列
int a = 0, b = 1, sum; //a为f(0),b为f(1)
//n=2;f(0)=0 f(1)=1 f(2)=1
for(int i = 0; i < n; i++){//循环求解
//sum表示的是求f(n)的值,直接利用前两向进行相加
sum = (a + b) % 1000000007;
//将后一值赋值给前一个
a = b;
//将结果的集赋值给前一个
b = sum;
}
return a;
}
}