動態規劃解題步驟

2021-10-04 19:45:18 字數 721 閱讀 3836

動態規劃解題步驟?

給你兩個單詞 word1 和 word2,請你計算出將 word1 轉換成 word2 所使用的最少運算元 。

你可以對乙個單詞進行如下三種操作:

插入乙個字元

刪除乙個字元

替換乙個字元

示例 1:

輸入:word1 = 「horse」, word2 = 「ros」

輸出:3

解釋:horse -> rorse (將 『h』 替換為 『r』)

rorse -> rose (刪除 『r』)

rose -> ros (刪除 『e』)

分析:

1、當第乙個字串的第乙個字元和第二個字串的第乙個字元相同時,對結果沒有增益效果。

2、當第乙個字串的第乙個字元和第二字串的第乙個字元不相同時,有三種情況

a.插入乙個字元

b.刪除乙個字元

c.替換乙個字元

遞迴加備忘錄:

動態規劃:

動態規劃(二) 含解題步驟

1.定義子問題 什麼可以算得上有子問題,可以用動態規劃解決的問題呢?例如在打家劫舍的演算法題中,問題可以被拆分為各個子問題,子問題是打劫前k家能得到的最大金額。假設一共有 n 個房子的話,就一共有 n個子問題。動態規劃實際上就是通過求這一堆子問題的解,來求出原問題的解。這要求子問題需要具備兩個性質 ...

動態規劃解題思路

在leetcode上看題解與結合自己的想法得出思路。首先明確 dp 陣列所存資料的含義。這步很重要,如果不得當或者不夠清晰,會阻礙之後的步驟。然後根據 dp 陣列的定義,假設 dp 0 i 1 dp 0 i 1 都已知,想辦法求出 dp i dp i 一旦這一步完成,整個題目基本就解決了。但如果無法...

動態規劃解題思路

一直以來,對動態規劃的理解處於乙個模糊的狀態,就是一種似乎懂但遇到問題未必能行的狀態 然後,最近重點在leetcode上找了一些動態規劃的題目做了一下,逐漸有了一些思路。我覺得leetcode上對動態規劃思想的概括非常到位,所以記錄在這裡 動態規劃 英語 dynamic programming,簡稱...