1. 程式人生 > >【leetcode】72. (Hard) Edit Distance

【leetcode】72. (Hard) Edit Distance

題目連結


解題思路:
DP

提交程式碼:

class Solution {
    public int minDistance(String word1, String word2) {
        int[][] dp=new int[word2.length()+1][word1.length()+1];
        dp[0][0]=0;
        for(int i=0;i<word1.length();i++)
        	dp[0][i+1]=i+1;
        for(int i=0;i<word2.length();
i++) dp[i+1][0]=i+1; for(int i=0;i<word2.length();i++) { for(int j=0;j<word1.length();j++) { if(word1.charAt(j)==word2.charAt(i)) dp[i+1][j+1]=minValue(dp[i][j],dp[i+1][j]+1,dp[i][j+1]+1); else dp[i+1][j+1]=minValue(dp[i][j+1],
dp[i+1][j],dp[i][j])+1; } } return dp[word2.length()][word1.length()]; } public int minValue(int num1,int num2,int num3) { if(num1>num2) num1=num2; if(num1>num3) num1=num3; return num1; } }

執行結果:
在這裡插入圖片描述