zoukankan      html  css  js  c++  java
  • LeetCode 72. Edit Distance

    题目

    简单动态规划

    class Solution {
    public:
        int dp[1005][1005];
        int minDistance(string word1, string word2) {
            
            int len1=word1.length();
            int len2=word2.length();
            
            if(len1==0)
                return len2;
            if(len2==0)
                return len1;
            
            for(int i=0;i<len1;i++)
            {
                for(int j=0;j<len2;j++)
                {
                    dp[i][j]=99999;
                    if(i==0&&j==0)
                    {
                        if(word1[i]==word2[j])
                        {
                            dp[i][j]=0;
                        }
                        else
                            dp[i][j]=1;
                        
                        continue;
                    }
                    
                    if(i>0)
                        dp[i][j]=min(dp[i][j],dp[i-1][j]+1);
                    if(j>0)
                        dp[i][j]=min(dp[i][j],dp[i][j-1]+1);
                    if(i>0&&j>0)
                        dp[i][j]=min(dp[i][j],dp[i-1][j-1]+1);
                    
                    if(word1[i]==word2[j])
                    {
                        if(i>0&&j>0)
                            dp[i][j]=min(dp[i][j],dp[i-1][j-1]);
                        if(i==0)
                        {
                            dp[i][j]=min(dp[i][j],j);
                        }
                        if(j==0)
                            dp[i][j]=min(dp[i][j],i);
                    }
                    
                }
            }
            
            return dp[len1-1][len2-1];
        }
    };
    
  • 相关阅读:
    HDU2159 二维完全背包
    HDU1401 BFS
    HDU2842 矩阵乘法
    CF2.E
    CF2.D
    *HDU2254 矩阵乘法
    CF2.C
    *HDU1907 博弈
    博弈
    *HDU2147 博弈
  • 原文地址:https://www.cnblogs.com/dacc123/p/11619008.html
Copyright © 2011-2022 走看看