斐波那契數列 動態規劃 遞迴(帶備忘錄)

2021-10-23 14:59:56 字數 601 閱讀 3736

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

直接由斐波那契數列的定義f(n) = f(n-1) + f(n-2)可以得到遞迴的公式,為了避免重複求解已經結果的問題,可以使用備忘錄(即陣列),將備忘錄初始化為-1,遞迴時進行判斷,若已經求解過就直接返回

public

int res;

public

intfibonacci

(int n)

if(n ==1)

if(res[n]!=-

1)return res[n]

; res[n]

=fun

(n -1)

+fun

(n -2)

;return res[n]

;}

這道題也可以作為動態規劃入門題,動態規劃實際是乙個填表的過程,要求解f(n)則必須知道子問題,因此先解決最小的子問題,即從0,1,2…開始

class

solution

}

遞迴和動態規劃 斐波那契數列

程式設計師 面試指南 chapter 4 感受 mulmatrix函式和matrixpower函式寫法要注意細節,需要牢記加速矩陣乘法的演算法思路將時間複雜度降低!暴力遞迴,o 2 n intf1 int n return res 利用矩陣,o log n 牛客上 給出乙個整數 n,請輸出斐波那契數...

斐波那契數列 遞推 遞迴 備忘錄 動態規劃

當n 0時,f n 0 當n 1時,f n 1 當n 1時,f n f n 1 f n 2 遞迴演算法 cpp view plain copy intfun intn 備忘錄方法 cpp view plain copy include using namespace std const intn 1...

動態規劃 斐波那契數列

問 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項 從0開始,第0項為0 n 39 斐波那契數列簡單介紹 我的解法 注 從fibonacci n 1 fibonacci n 2 明顯看出使用的是遞迴,此題用遞迴兩三行 即可搞定。但是,若出題者準備著乙個超大的n,那麼很有...