斐波那契數列問題總結

  • n比較小的時候,可以直接使用遞歸法來求解,不做任何記憶化操作,時間複雜度是O(2^n),存在很多冗餘計算;
  • 一般情況下,可以使用“記憶化搜索”(即動態規劃)或者迭代的方法,實現這個轉移方程,時間複雜度和空間複雜度都可以做到O(n);
  • 爲了優化空間複雜度,可以不保存f(x-2)之前的項,我們只用兩個變量來維護f(x-1)和f(x-2),這樣就可以把時間複雜度優化到O(1);
  • 隨着n的不斷增大,O(n)可能已經不能滿足我們的需要了,我們可以用“矩陣快速冪”的方法把算法加速到O(logn);
  • 也可以利用斐波那契數列的通項公式,直接把n代入通項公式中計算;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章