7 劍指offer 斐波那契數列

2021-10-03 07:27:26 字數 667 閱讀 9810

大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。   n<=39

錯誤示範:遞迴複雜度過高,報錯顯示 記憶體溢位以及未在規定時間計算完成!

class solution 

};

遞迴的重複計算太多!

可以改用迴圈,log(n)時間複雜度,o(1)空間複雜度

class solution 

return result;

}};

迭代法:

/*

整體思路:考慮負數,大數,演算法的複雜度,空間的浪費*/

public class solution

//第一和第二個數直接返回

if (n == 1 || n == 2)

//當n>=3時,走這裡,用迭代法算出結果

//這裡也說明了,要用三個數操作的情況,其實也可以簡化為兩

//個數,從而節省記憶體空間

while (n-- > 2)

return fn1;

}}

動態規劃:

class solution 

return f;

}};

7 劍指offer 斐波那契數列

題目描述 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。n 39 解題思路 首先如果直接return fibonacci n 1 fibonacci n 2 的話會有很多值算了很多遍 因此思考如何遍歷一遍得到結果。首先0和1需要單獨計算,然後從2開始f2 f0 f1 ...

劍指offer 斐波那契數列

題目1描述 寫乙個函式,輸入n,求斐波那契數列的第n項。斐波那契數列的定義如下 f n 0 n 0 f n 1 n 1 f n f n 1 f n 2 n 1 分析描述 在大多數的c語言教科書中,一般會用遞迴求斐波那契數列。如下 long long fibonacci unsigned int n ...

劍指offer 斐波那契數列

記錄來自 劍指offer 的演算法題。題目如下 寫乙個函式,輸入n,實現斐波那契數列的第n項。斐波那契數列的定義如下 f n 01 f n 1 f n 2 n 0 n 1n 1 教科書上通常在介紹遞迴的時候都會使用斐波那契數列作為例子,然後給出下列解法 long long fibonacci uns...