1、計數
2、求最大值最小值
3、求存在性
一:確定狀態
(1)最後一步
(2)確定子問題
二:轉移方程
三:初始條件和邊界情況
四:計算順序
有2元,5元,7元硬幣,求組合成27元硬幣所用最少硬幣數。
找出最後一步:最優策略是k枚硬幣a1,a2……ak加起來是27
最後一枚為ak,則前面的面值加起來是27-ak
子問題:最少用多少枚硬幣可以拼出27-ak
設狀態f[x]=最少用多少枚硬幣拼出x
對於任何x
f[x]=min
從f[1]開始計算,當計算到f[x]時,f[x-2],f[x-5],f[x-7]都已經得到結果,可以計算
o(m×n)
class solution ;}}
} if (f[m] == int_max)
else
return 0;
}};
動態規劃解題思路
在leetcode上看題解與結合自己的想法得出思路。首先明確 dp 陣列所存資料的含義。這步很重要,如果不得當或者不夠清晰,會阻礙之後的步驟。然後根據 dp 陣列的定義,假設 dp 0 i 1 dp 0 i 1 都已知,想辦法求出 dp i dp i 一旦這一步完成,整個題目基本就解決了。但如果無法...
動態規劃解題思路
一直以來,對動態規劃的理解處於乙個模糊的狀態,就是一種似乎懂但遇到問題未必能行的狀態 然後,最近重點在leetcode上找了一些動態規劃的題目做了一下,逐漸有了一些思路。我覺得leetcode上對動態規劃思想的概括非常到位,所以記錄在這裡 動態規劃 英語 dynamic programming,簡稱...
ACM做題思路總結
1.對於在限制條件下的最優化問題,時間上優化的突破口也在限制條件。eg 給 n條邊,從中選 3條拼成乙個三角形,要求周長最大的三角形 搜尋時各種剪枝策略 2.為了設計演算法,靈活的想象力 演算法的基礎知識 也是必不可少的。poj 1852 螞蟻爬桿 3.對於標準庫已經實現了的函式,盡量呼叫庫函式,不...