leetCode 72. 编辑距离 hard 动态规划

添加链接描述

#include 
#include 
using namespace std;
class Solution {
public:
    int minDistance(string word1, string word2) {
        word1=" "+word1;
        word2=" "+word2;
        int n=word1.size(),m=word2.size();
        int dp[n][m];
        for(int i=0;i<n;++i)
            dp[i][0]=i;
        for(int j=0;j<m;++j)
            dp[0][j]=j;
        for(int i=1;i<n;++i){
            for(int j=1;j<m;++j){
                if(word1[i]==word2[j]) dp[i][j]=dp[i-1][j-1];  
                else {
                    dp[i][j]=min(dp[i-1][j]+1,min(dp[i][j-1]+1,dp[i-1][j-1]+1));  
                }    
            }
        }
        return dp[n-1][m-1];   
    }
};
int main() {
    string word1 = "horse", word2 = "ros";
    int cost=minDistance(word1,word2);
    printf("%d",cost);
    return 0;
}

你可能感兴趣的:(LeetCode,c++,算法,动态规划)