斐波那契数列1,1,2,3,5... 数列从第三项开始,每一项等于前两项和。
递归公式为:f(1)=f(2)=1,f(n)=f(n-1)+f(n-2),n>=3。
递归解法:
public class Solution {
public int Fibonacci(int n) {
if(n<=1){
return n;
}
return Fibonacci(n-1) + Fibonacci(n-2);
}
}
非递归解法
public class Solution {
public static int Fibonacci(int n) {
int preNum=1;
int prePreNum=0;
int result=0;
if(n==0)
return 0;
if(n==1)
return 1;
for(int i=2;i<=n;i++){
result=preNum+prePreNum;
prePreNum=preNum;
preNum=result;
}
return result;
}
时间复杂度O(n),空间复杂度O(1)