leetcode 72 编辑距离 动态规划

72 编辑距离

我讲的不清楚,只是在刷题,想弄明白动态规划建议看大佬的笔记 算法书籍分享

class Solution {
public:
    int min(int a, int b, int c) {
        int temp = a > b ? b : a;
        int result = c > temp ? temp : c;
        return result;
    }
    int minDistance(string word1, string word2) {
        int m=word1.length();
        int n=word2.length();
        int dp[n+1];
        for(int i=0;i<=n;++i){
            dp[i]=i;  //刚开始dp[i]是从啥都没有变成word2前i个字符所需的步数
        }
        for(int j=1;j<=m;++j){    //分别遍历从有i个字符的word1变到word2的前i个字符所需步数dp[i]
            int tmp=dp[0];
            dp[0]=j;
            for(int i=1;i<=n;++i){
                int pre=tmp;
                tmp=dp[i];
                if(word1[j-1]==word2[i-1]){
                    dp[i]=pre;
                }else{
                    dp[i]=min(dp[i-1],pre,dp[i])+1;
                }
            }
        }
        return dp[n];
    }
};
posted on 2021-06-06 18:38  雾恋过往  阅读(31)  评论(0编辑  收藏  举报

Live2D