題目:
大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。
n<=39
思路:看到斐波那契數列就想有用遞迴的衝動,沒錯,剛開始我看了就往那個方向去想了,而且遞迴**只需要幾行就行了,
if
(n<=
1
)
return
n;
else
return
fibonacci(n-
1
)+fibonacci(n-
2
);
不要忘了n可以從0開始,而且用遞迴有乙個明顯的缺點,時間複雜度很大,有可能產生溢位,所以必須放棄遞迴,除非實在想不到方法,除了遞迴還有迭代,
其實用迭代的思想不難,定義第乙個數和第二個數,再定義乙個target,然後逐步迭代過程中,不斷更新這三個數,這樣時間複雜度大大降低。
class solution
return target;
}};
劍指Offer (7)斐波那契數列
題目說明 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。n 39 實現如下 0 1 1 2 3 5 8 13 21.簡潔的遞迴,但是注意消除重複計算項,採用map儲存已計算的n的value class solution else return it second 若之...
《劍指Offer》7 斐波那契數列
題目 7.斐波那契數列 知識點 遞迴 動態規劃 題目描述 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項 從0開始,第0項為0 n 39 解題思路 思路比較簡單,動態規劃和遞迴遞迴都可以實現,不做過多贅述。解法一 自研 int fibonacci int n 解法二 劍...
劍指offer7 斐波那契數列
大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項 從0開始,第0項為0 n 39 首先貼乙個斐波那契數列的定義 斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入...