Java LeetCode 72. 編輯距離
給你兩個單詞 word1 和 word2,請你計算出將 word1 轉換成 word2 所使用的最少運算元 。
你可以對一個單詞進行如下三種操作:
插入一個字元
刪除一個字元
替換一個字元
示例 1:
輸入:word1 = “horse”, word2 = “ros”
輸出:3
解釋:
horse -> rorse (將 ‘h’ 替換為 ‘r’)
rorse -> rose (刪除 ‘r’)
rose -> ros (刪除 ‘e’)
動態規劃
如例子中dp[i][j]
dp[5][3] = 3;表示horse 和 ros轉換需要3步,, i和j不表示位置,表示長度
如果
當word1[i]和word2[j]相等的時候,轉換次數不變,也就是dp[i-1][j-1]
如果不相等,則如圖下所示有三種解決辦法,挑選最小的+1則可以
class Solution {
public int minDistance(String word1, String word2) {
int m = word1.length();
int n = word2.length();
int dp[][] = new int[m+1][n+1];
for(int i=0;i<m+1;i++){
dp[i][0]=i;
}
for(int i=0;i<n+1;i++){
dp[0][i]=i;
}
for(int i=1;i<m+1;i++){
for(int j=1;j<n+1;j++){
if(word1.charAt(i-1)==word2.charAt(j-1)){
dp[i][j]=dp[i-1][j-1];
}else{
dp[i][j]=Math.min(Math.min(dp[i-1][j]+1,dp[i][j-1]+1),dp[i-1][j-1]+1);
}
}
}
return dp[m][n];
}
}
相關文章
- 【leetcode】72. Edit Distance 編輯距離計算LeetCode
- LeetCode72編輯距離LeetCode
- 編輯距離及編輯距離演算法演算法
- 【DP】編輯距離
- Leetcode 編輯距離(動態規劃)LeetCode動態規劃
- 程式設計之美leetcode之編輯距離程式設計LeetCode
- 計算字串編輯距離字串
- 編輯距離演算法演算法
- 線性dp:編輯距離
- 動態規劃-編輯距離動態規劃
- 最短編輯距離演算法演算法
- 902.最短編輯距離
- 面試程式碼題(華為)編輯距離面試
- 字串編輯距離問題詳解字串
- Levenshtein:計算字串的編輯距離字串
- 【動態規劃】字串最小編輯距離Java實現動態規劃字串Java
- LeetCode 461. 漢明距離LeetCode
- LeetCode 834 樹中距離之和LeetCode
- 資料對齊-編輯距離演算法詳解(Levenshtein distance)演算法
- 演算法:編輯距離問題(動態規劃,詳細解答)演算法動態規劃
- 45.LeetCode461. 漢明距離LeetCode
- leetcode-834. 樹中距離之和LeetCode
- 字串相似度演算法(編輯距離演算法 Levenshtein Distance)(轉)字串演算法
- 程式碼隨想錄演算法訓練營第51天 | 115.不同的子序列 、583. 兩個字串的刪除操作 、72. 編輯距離演算法字串
- 怎樣衡量兩個字串的相似度(編輯距離動態規劃求解)字串動態規劃
- 演算法——動態規劃演算法求解字串的編輯距離演算法動態規劃字串
- 曼哈頓距離與切比雪夫距離
- JavaScript 元素距離視窗頂部的距離JavaScript
- leetcode-624.陣列列表中的最大距離LeetCode陣列
- PostgreSQL遺傳學應用-矩陣相似距離計算(歐式距離,…XX距離)SQL矩陣
- JavaScript獲取元素距離文件頂部的距離JavaScript
- java文字相似度計算(Levenshtein Distance演算法(中文翻譯:編輯距離演算法))----程式碼和詳解Java演算法
- Laravel 距離排序Laravel排序
- unit原子距離
- 【Python】距離Python
- 最小距離分類器,互動式選取影像樣本分類資料,進行最小距離分類(實現歐式距離,馬氏距離,計程距離)
- 【Leetcode 每日一題】1030. 距離順序排列矩陣單元格(水題,曼哈頓距離排序)LeetCode每日一題矩陣排序
- javascript獲取元素距離網頁頂部的距離JavaScript網頁