leetcode 72 編輯距離

2021-09-25 20:58:18 字數 889 閱讀 2275

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

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

本題目典型的動態規劃,動態規劃屬於十分難的演算法題目。

在完成動態規劃題目時,主要掌握三點即可——狀態表示、狀態轉移、狀態初始化。

首先是狀態表示。

很容易想出,定義狀態轉移矩陣 f[i

][j]

f[i][j]

f[i][j

],用於表示 word1 中前 i 個字元轉換為 word2 中前 j 個字元所需的最少運算元。

接下來是狀態轉移 (這一步十分困難)。

如果 wor

d1[i

]==w

ord2

[j

]word1[i] == word2[j]

word1[

i]==

word

2[j]

, 則有 f[i

][j]

=f[i

−1][

j−1]

f[i][j] = f[i - 1][j - 1]

f[i][j

]=f[

i−1]

[j−1

]。如果 wor

d1[i

]≠wo

rd2[

j]

word1[i] \neq word2[j]

word1[

i]̸​

=wor

d2[j

],則會採取下面三種策略:

int mindistance(string word1, string word2) 

return f[n][m];

}

Leetcode 72 編輯距離

給定兩個單詞 word1 和 word2,計算出將 word1 轉換成 word2 所使用的最少運算元 你可以對乙個單詞進行如下三種操作 插入乙個字元 刪除乙個字元 替換乙個字元 示例 1 輸入 word1 horse word2 ros 輸出 3 解釋 horse rorse 將 h 替換為 r ...

leetcode 72 編輯距離

給定兩個單詞 word1 和 word2,計算出將 word1 轉換成 word2 所使用的最少運算元 你可以對乙個單詞進行如下三種操作 插入乙個字元 刪除乙個字元 替換乙個字元 示例 1 輸入 word1 horse word2 ros 輸出 3解釋 horse rorse 將 h 替換為 r r...

LeetCode72 編輯距離

給定兩個單詞 word1 和 word2,計算出將 word1 轉換成 word2 所使用的最少運算元 你可以對乙個單詞進行如下三種操作 示例 1 輸入 word1 horse word2 ros 輸出 3 解釋 horse rorse 將 h 替換為 r rorse rose 刪除 r rose ...