思路:
斐波那契数列:0,1,1,2,3,5...F(n-2),F(n-1),F(n)=F(n-2)+F(n-1)
- 递归
- 用数组来保存fibonacci数列,然后根据输入的n返回数组下标为n处的值。
- 根据斐波那契数列的公式,可以用3个变量来表示(也可以只用两个变量)
答案:
1.递归
public class Solution {
public int Fibonacci(int n) {
if(n <= 1){
return n;
}
return Fibonacci(n-1)+Fibonacci(n-2);
}
}2.数组
public class Solution {
public int Fibonacci(int n) {
int[] fib = new int[40];
fib[0] = 0;
fib[1] = 1;
for(int i = 2; i <= n; i++){
fib[i] = fib[i-1] + fib[i-2];
}
return fib[n];
}
}3.用3个变量来表示
public class Solution {
public int Fibonacci(int n) {
int pre1 = 1;
int pre2 = 0;
int cur = 0;
for(int i = 2; i <= n; i++){
cur = pre1 + pre2;
pre2 = pre1;
pre1 = cur;
}
if(n < 2){
return n;
}
return cur;
}
}
京公网安备 11010502036488号