1、思想:避免重複的計算,先將計算過的值保存下來,如果發現有相同的步驟,直接將事先保存好的值拿出來。
動態規劃其實質上是通過開闢記錄表,記錄已求解過的結果,當再次需要求解的時候,可以直接到那個記錄表中去查找,從而避免重複計算子問題來達到降低時間複雜度的效果。實際上是一個空間換時間的算法。
動態規劃,在一步選擇的時候,是通過從以前求出的若干個與本步驟相關的子問題最優解中選擇最好的那個,加上這一步的值,來構造這一步那個子問題的最優解,而如果以前求出的若干個子問題不保存下來,就需要重新求(通常是遞歸所致)。動態規劃用武之地也無非是保存這些重複的子問題而避免重新求解而達到高效的目的。
動態規劃都是用來求解最優解的問題。
動態規劃方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
POJ2109——Power of Cryptography
gfz15110
2020-06-28 21:00:15
poj 3984 迷宮問題(bfs+路徑記錄)
定義一個二維數組: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
ling_wang
2020-07-04 14:46:08
poj 3414 Pots(bfs+輸出回溯路徑)
給你兩個容器,分別能裝下A升水和B升水,並且可以進行以下操作 FILL(i) 將第i個容器從水龍頭裏裝滿(1 ≤ i ≤ 2); DROP(i) 將第i個容器抽乾 POUR
ling_wang
2020-07-04 14:46:08
hdu 1495 非常可樂(bfs)
ling_wang
2020-07-04 14:46:08
鏈表中倒數第K個元素,
beginTheWorld
2020-06-29 12:56:12
選擇排序與插入排序--java
//選擇排序與插入排序(選擇排序是固定位置,找元素。插入排序固定元素找位置) //選擇排序:從數組中找到最小的放到第一個位置,然後再在剩餘元素中找最
Christlxl
2020-06-28 21:58:27
鴿巢(計數)排序--java
//鴿巢排序,去zte面試被問到一道算法題,後來才知道是鴿巢排序的思想,可用於統計數組中重複元素的個數//調試時總是報數組越界異常,max=32,n
Christlxl
2020-06-28 21:58:27
VK Cup 2016 - Round 1 (Div. 2 Edition)C. Bear and Forgotten Tree 3(構造)
saucyJack
2020-06-28 13:22:37
輸入兩個正整數a,b 求其最大公約數和最小公倍數
zhaomu
2020-06-28 02:24:03
氣泡法排序 輸入N個數字 由小到大排序
zhaomu
2020-06-28 02:24:03
統計全班某們功課期末考試的平均分數和最高分數
zhaomu
2020-06-28 02:24:03
當你用apt-get安裝一直失敗可以試試aptitude
羊羊羊爱吃草
2020-06-25 15:04:11
訓練好的Pytorch模型在導入測試
羊羊羊爱吃草
2020-06-25 15:04:11
基礎算法1_插入排序(直接插入+折半插入+希爾排序)
fulisha_la
2020-06-25 00:06:19