從遞迴到動規(學習筆記)

2021-08-29 10:20:07 字數 433 閱讀 7548

區別:動態規劃是由已知推未知,由子問題推大問題,由邊界值逆推,相當於遞迴的逆過程。

解題思想:

1.分解子問題:將原問題分為若干子問題,子問題形式與原問題相似,規模減小,子問題的解求出來即儲存,不影響其他子問題,避免重複求解。

2.確定狀態

狀態就是與解相關的一組變數,例如數字三角形求到底邊最大值時,每個值的行號列號就組成了乙個狀態。一般k個整形數構成乙個狀態,一般k維陣列存放狀態值。問題的時間複雜度一般是狀態數乘以計算每個狀態所需時間。

3.確定邊界狀態值(初始狀態值)

數字三角形中的底邊數值

4.確定狀態轉移方程(遞推方程)

用已知狀態,求未知狀態

可解題的條件:

1.具有最優子結構:問題的最優解所包含的子問題的解也是最優的。

2.無後效性:只與當前的狀態值有關,與狀態值如何來的無關。

演算法!動態規劃!從遞迴到動態規劃!

動態規劃演算法一直都是計算機程式設計的核心演算法之一,是必須具備的幾種核心演算法之一。博主是在b站中學習來的,並加入了自己的理解,從而加強記憶。auther wei yunshi luoxian date 2020 01 16 19 54 public class dynamicplan otp e...

從階乘遞迴到subset題解的遞迴思想擴充套件

給定乙個含不同整數的集合,返回其所有的子集.如果 s 1,2,3 有如下的解 3 1 2 1,2,3 1,3 2,3 1,2 求不同元素集合的全部子集問題,雖然網上有各種參考 但是從 反過來去思考作者的思路很難。所以我一直認為 應該是寫給人看的,不應該過於追求 簡潔。對於求子集問題,網路上ac的答案...

從遞迴到DP 01揹包問題初探

目錄 問題描述 1.純遞迴解決,容易溢位 2.記憶化搜尋法 3.由記憶化搜尋推導遞推關係,使用動態規劃法dp 備註 有n件物品和乙個容量為v的揹包。第i件物品的費用是c i 價值是w i 求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量,且價值總和最大。測試樣例 n 4,w 5 42 3 ...