演算法題型當中應該說最難的就是動態規劃啊,貪心演算法很大程度上取決於貪心策略,所以動態規劃整體上比貪心應用更廣泛,且貪心未必能找到最優解,但動態規劃一定可以找到最優解。
一般運用動態規劃的地方有以下特徵:
①求最值
②序列連續/序列不連續
③每一步都要取到區域性最優值
從硬幣和相等子串行問題中,發現乙個trick:
如果要求陣列中的個數不限:從小到大遍歷(可以保證乙個數可以取多次);若個數有限定:從大到小遍歷(數只能取一次);
具體參考:
另外,如果要求我們求解最優的路徑,而不是極值,可以採用類似於弗洛伊德的思路,每個元素可以用pair鍵值對進行儲存對應的極值和上乙個的座標,這樣就可以回溯查詢到對應的路徑;具體參考:
例如:前兩個條件都滿足,但不滿足第三個,即當前取到的最優值不是最終結果的最優值
動態規劃總結
華電北風吹 天津大學認知計算與應用重點實驗室 日期 2015 12 7 近期學了幾個動態規劃正好總結一下。裡面不涉及具體問題的具體解法,有問題可以參看我的具體型別的講解部落格。目前所見動態規劃可以劃分為兩類 鏈式和樹形。而且這兩類中的每個節點都是乙個完整的狀態集合。一 鏈式動態規劃 鏈式動態規劃的題...
動態規劃 總結
動態規劃是解決多階段決策問題的一種方法。如果一類問題的求解過程可以分為若干個互相聯絡的階段,在每乙個階段都需作出決策,並影響到下乙個階段的決策,從而確定了乙個過程的活動路線,則稱它為多階段決策問題。思想 在做每一步決策時,列出各種可能的區域性,解依據某種判定條件,捨棄那些肯定不能得到最優解的區域性解...
動態規劃總結
一 知識點整理 一 動態規劃是解決多階段策略問題的一種方法,運用最優性原理,排除重複計算,用空間換時間的演算法。二 動態規劃適用的題目型別有以下幾個特點 1.問題具有多階段的決策 2.每個階段對應乙個狀態 狀態變數 3.每個階段有乙個決策 不同的決策導致下乙個階段不同的狀態 4.每個階段的最優解可以...