微軟,Google面試題 (16) —— O(logn)求Fibonacci數列

題目:定義Fibonacci數列如下:

        /  0                      n=0
f(n)=      1                      n=1
        /  f(n-1)+f(n-2)          n=2

輸入n,用最快的方法求該數列的第n項。
解法一:常規解法。用遞歸做。不採取任何優化。 解法二:還是遞歸,採用記憶化搜索優化。空間複雜度爲O(n),時間複雜度也爲O(n)。
解法三:從下往上計算,從f(1)和f(0)推算出f(2),以此類推。

發佈了103 篇原創文章 · 獲贊 3 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章