目錄
leetcode前200道題中的動態規劃
10. 正規表示式匹配
44. 萬用字元匹配
62. 不同路徑
64. 最小路徑和
72. 編輯距離
91. 解碼方法
96. 不同的二叉搜尋樹
95. 不同的二叉搜尋樹 ii
97. 交錯字串
115. 不同的子串行
174. 地下城遊戲
比較難的一道動態規劃,給出兩種方法。
當前位置不是*比較容易,是*的時候要考慮可以不用前面的符號和用多次的問題。
class solution
return dp[m][n];
}};class solution
return false;//不匹配,返回false
乙個機械人位於乙個 m x n 網格的左上角 (起始點在下圖中標記為「start」 )。
機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角(在下圖中標記為「finish」)。
問總共有多少條不同的路徑?
class solution
return dp[n][m]; }};
一條包含字母 a-z 的訊息通過以下方式進行了編碼:
'a' -> 1
'b' -> 2
...'z' -> 26
給定乙個只包含數字的非空字串,請計算解碼方法的總數。
示例 1:
輸入: "12"
輸出: 2
解釋: 它可以解碼為 "ab"(1 2)或者 "l"(12)。
class solution
return dp[n];}};
給定乙個整數 n,求以 1 ... n 為節點組成的二叉搜尋樹有多少種?
dp[i] : i個節點可以組成的二叉搜尋樹的個數。
可以得遞推式:dp[i] = dp[0] * dp[i-1] + dp[1] * dp[i-2] * .......
初始化:dp[0] = dp[1] = 1;
字串上簡單的動規即可:
字串上簡單動規:
dp[i][j] = dp[i-1][j];(不用s中當前的字元)
如果是s[i] == t[i]的話,d[i][j] += dp[i-1][j-1];
class solution
return dp[0][0]+1;}};
動態規劃 一
在現實生活中,有一類活動的過程,由於它的特殊性,可將過程分程若干個互相聯絡的階段,在它的每一階段都需要作出決策,從而使整個過程達到最好的活動效果。當然,各個階段決策的選取不是任意確定的,它依賴於當前面臨的狀態,又印象以後的發展,當各個階段決策確定後,就組成乙個決策序列,因而也就確定了整個過程的一條活...
動態規劃(一)
動態規劃的兩種常用形式 1 遞迴型 在函式中呼叫自身 優點 直觀,容易編寫 缺點 可能會因為遞迴層數太深導致爆棧,函式呼叫帶來額外時間開銷。無法使用滾動陣列節省空間。總體來說,比遞推型慢。2 遞推型 for迴圈 效率高,有可能使用滾動陣列節省空間。有的問題只能用遞迴解決,有的問題既可以用遞迴,也可以...
動態規劃 (一)
對於動態規劃的學習總共進行了兩節課,到現在為止還是一頭霧水,雖然看懂了老師上課講的例題,但是做v judge的時候還是都不太會,我主要認為我只知道了動態規劃的基本思想,就是將乙個大的問題,分成若干個小問題,但與貪心演算法不同的是,動態規劃中的每乙個小問題之間都相互影響,在每一步都取得最優解,且在不斷...