[剑指offer]面试题第[7]题[JAVA][斐波那契数列][递归]
生活随笔
收集整理的這篇文章主要介紹了
[剑指offer]面试题第[7]题[JAVA][斐波那契数列][递归]
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【問題描述】
大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。
n<=39
【解答思路】
1.遞歸(面試避免) O(n^2)
public class Solution {public int Fibonacci(int n) {if (n == 0) return 0;if (n == 1) return 1;return Fibonacci(n - 1) + Fibonacci(n - 2);} }2.一般循環 O(n) 空間復雜度:O(n)
public class Solution {public int Fibonacci(int n) {int ans[] = new int[40];ans[0] = 0;ans[1] = 1;for(int i=2;i<=n;i++){ans[i] = ans[i-1] + ans[i-2];}return ans[n];} }3.循環優化 O(n) 空間復雜度:O(1)
0 1 1 2 3 5 8
f(6) = f(5) + f(4),只需要保存f(5) , f(4) 由f(5) -f(3) 得出
計算8 = 5+3時,只需要保存5, 3由5-2得出
【總結】
總結
以上是生活随笔為你收集整理的[剑指offer]面试题第[7]题[JAVA][斐波那契数列][递归]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【手势交互】9. PS Move
- 下一篇: 上天入海又怎样?阿里的运动达人纷纷表示不