leetcode 72 編輯距離

2021-10-02 14:27:48 字數 1075 閱讀 1818

解決思路:

動態規劃

兩個核心的概念: 1.狀態陣列的含義  2.遞迴方程 

狀態陣列的含義 dp[i][j]: word1的前i個字元--->word2的前j個字元的最小步數
dp[i][j]=  dp[i-1][j-1]                                         word1[i]==word2[j]

min(dp[i][j-1],dp[i-1][j],dp[i-1][j-1])+1 word1[i]!=word2[j]

**:

public static void main(string args) 

/*** @description: 狀態陣列的含義 dp[i][j]: word1的前i個字元--->word2的前j個字元的最小步數

* dp[i][j]= dp[i-1][j-1] word1[i]==word2[j]

* min(dp[i][j-1],dp[i-1][j],dp[i-1][j-1])+1 word1[i]!=word2[j]

* @date: 2020/2/6 10:39

* @author: fuguowen

* @return

* @throws

*/public static int mindistance(string word1, string word2)

if(j==0)

//先處理左邊界和上邊界,然後遞推

int arr=new int[i+1][j+1];

arr[0][0]=0;

//不斷新增單詞

for(int p=1;p<=j;p++)

//不斷刪除單詞

for(int q=1;q<=i;q++)

for(int p=1;p<=i;p++)else}}

return arr[i][j];

}

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 ...