動態規劃1 斐波那契入動規

2021-10-03 05:01:56 字數 1015 閱讀 2519

參考題解任意門1

參考題解任意門2

分治:將問題劃分成互不相交的子問題,然後遞迴地求解子問題,最後將子問題組合起來得到原問題解。(eg.歸併排序)

動態規劃:和分治類似,但應用於子問題重疊的情況,即不同的子問題具有公共的子問題(在這種情況下使用分治會重複執行很多不必要的工作)。所以動態規劃只對每個子問題求一次解,將結果存在乙個**中,需要使用時直接查表即可。(dp常常使用一維或二維**儲存中間結果值)

又稱**分割數列,以兔子繁殖為例引入,又稱「兔子數列」。指的是這樣一組數字:1,1,2,3,5,8,13,……

f (n

)=

1,n=1,2\\ f(n-1)+f(n-2), n\geq3\end

f(n)

=迭**法

對於求第n項值,需要儲存第n-1和第n-2項的值,犧牲一點記憶體,換取多項式的執行時間。

int dp_solution::fibonacci2(int n)

return fn;

}

測試用例
int main()

思路:把n級台階的跳法種數看成n的函式f(n),n=1的時候,f(n) = 1;n=2時,f(n)=2;n>2時,第一次跳有兩種不同的選擇,第一種是跳一級,那麼f(n)就等於跳剩下的n-1級台階種數,第二種是跳2級,那麼f(n)就等於跳剩下的n-2級台階種數,所以f(n) = f(n-1) + f(n-2)。

f (n

)=

1,n=1\\ 2,n=2\\ f(n-1)+f(n-2), n>2\end

f(n)=⎩

⎪⎨⎪⎧

​1,n

=12,

n=2f

(n−1

)+f(

n−2)

,n>2​

int dp_solution::jumpsteps(int n)

return fn;

}

動態規劃 斐波那契數列

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

python斐波那契數列動態規劃

斐波那契類似於1 1 2 3 5 8這樣的數列,當前項等於前兩項之和。根據這個規律就可以用遞迴來做,可是當數字很大的時候,遞迴耗時很長,因此可以採用動態規劃來做。動態規劃 deffeibonacci1 n array 0 1 while len array n 1 array 2 return ar...

動態規劃之斐波那契數

70.爬樓梯 e 假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。第n階台階的路線等於n 1階的路線數加上n 2階的路線數,第一階的路線數為1,第二階路線數等於2,遍歷求和即可 class soluti...