推荐一个作者的详解,大佬有动态图解析:
作者:ikaruga
链接:https://leetcode-cn.com/problems/edit-distance/solution/edit-distance-by-ikaruga/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
啧啧......是人是鬼都在秀,我算是服了,这行的水是真的深!!!
个人微改:
class distance{
public int minDistance(String word1,String word2) {
int len1 = word1.length(),len2 = word2.length();
int[][] dp = new int[len1+1][len2+1];
for(int i=0;i<len1+1;i++) {
for(int j=0;j<len2+1;j++) {
if(i==0 && j>=0) {
dp[i][j]=j;
}else if(j==0 && i>0) {
dp[i][j]=i;
}else {
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],dp[i][j-1]),dp[i-1][j-1])+1;
}
}
}
}
return dp[len1][len2];
}
}
public class EditDistance {
public static void main(String args[]) {
String word1 = "horse";
String word2 = "ros";
distance hah = new distance();
System.out.println(hah.minDistance(word1, word2));
}
}