// 面試題10:斐波那契數列
// 題目:寫乙個函式,輸入n,求斐波那契(fibonacci)數列的第n項。
fibonacci數列,不用多說,相信大家都了解,f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)(n>=2)。
看著斐波拉契數列,突然想到了一句話很貼切,道生一,一生二,二生三,三生萬物...
斐波拉契最簡單的寫法就是遞迴,函式簡介易懂,但是由於執行過程中需要不斷的呼叫自身,時間複雜度比較高,
而且使用遞迴的話,會有大量重複不必要的計算產生,我們可以使用迭代來改寫遞迴,提高執行效率。
這個東西以前演算法課應該講過的,好像當初還講了第三種方法,就是利用矩陣來求,劍指offer裡面也講到了,先這樣吧。
略
long long fibonacci_solution1(unsigned n)
long long fibonacci_solution2(unsigned n) ;
if (n < 2)
return a[n];
long long fibone = 0;
long long fibtwo = 1;
long long fibn = 0;
for (int i = 2; i <= n; i++)
return fibn;
}
劍指offer第二版面試題10
posted @
2018-08-06 19:36
朕蹲廁唱忐忑 閱讀(
...)
編輯收藏
面試題10 斐波那契數列
面試題10 斐波那契數列 題目一 求斐波那契數列數列的第n項 現在要求輸入乙個整數 n,請你輸出斐波那契數列的第n項 思路 遞迴的效率低,使用迴圈 authorjuaner publicclassfibonacci1 publiclongfibonacci intn if n 1 for inti ...
面試題10 斐波那契數列
f 0 0 f 1 1 f n f n 1 f n 2 n 2 遞迴求解 public static long fib int n 為什麼說遞迴不好呢?採用迴圈的方式 順序計算,先定義f0,f1的值,根據n去迴圈,這樣需要儲存前兩個數的值,效率提公升了很多 int res if n 2 return...
面試題10 斐波那契數列
面試題10 斐波那契數列 題目 寫乙個函式,輸入n,求斐波那契 fibonacci 數列的第n項。fibonacci數列,不用多說,相信大家都了解,f 0 0,f 1 1,f n f n 1 f n 2 n 2 看著斐波拉契數列,突然想到了一句話很貼切,道生一,一生二,二生三,三生萬物.斐波拉契最簡...