一开始一看数据规模0<=n<=100
直接就是一套递归
class Solution {
public int fib(int n) {
if(n==0)
return 0;
if(n==1)
return 1;
return fib(n-1)+fib(n-2) %1000000007;
}
}
然后就…
那就采用递推吧…(其实也可以理解为动态规划)
class Solution {
static []int F = new int[101];
public int fib(int n) {
F[0] = 0;
F[1] = 1;
for(int i = 2;i <= n; i++){
F[i] = F[i-1] % 1000000007 + F[i-2] % 1000000007;
}
return F[n] % 1000000007;
}
}
LeetCode题解:
class Solution {
public int fib(int n) {
int a = 0, b = 1, sum;
for(int i = 0; i < n; i++){
sum = (a + b) % 1000000007;
a = b;
b = sum;
}
return a;
}
}