【剑指offer】07.斐波那契数列
7.斐波那契数列
知识点:数组;递归
题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。n <= 39.
解法一
刚开始看到的时候第一思路直接上数组了,如下:
public class Solution{
public int Fibonacci(int n){
int[] arr = new int[40];
arr[0] = 0;
arr[1] = 1;
if(n <= 1) {
return arr[n];
}else{
for(int i = 2; i <= n; i++){
arr[i] = arr[i-1] + arr[i-2];
}
return arr[n];
}
}
}
时间复杂度:O(n);空间复杂度:O(n);
解法二
这题应该是和汉诺塔一样很经典的递归问题,所以用递归应该是最好的解题思路
public class Solution{
public int Fibonacci(int n){
if(n <= 1){
return n;
}
return Fibonacci(n-1) + Fibonacci(n-2);
}
}
时间复杂度:O(2^n); 空间复杂度:O(1);

浙公网安备 33010602011771号