• leetcode 72.edit distance


    https://leetcode.com/problems/edit-distance/discuss/25846/20ms-Detailed-Explained-C++-Solutions-(O(n)-Space)

    注意:初始化的时候,不再是以前那样[0,i]、[i,0]为0,而是相应的值。这是可以理解的,因为,[0,i]其实就相当于0个字符串变成i个字符需要花费的操作,这肯定是i个,即增加i个字符。

    dp[i][j]表示前i个字符变成j个字符需要的最少操作个数

    class Solution {
    public:
        int minDistance(string word1, string word2) {
            int length1 = word1.length();
            int length2 = word2.length();
            vector<vector<int>> result(length1+1,vector<int>(length2+1));
            for(int i = 0;i <= length1;i++)
                result[i][0] = i;
            for(int j = 0;j <= length2;j++)
                result[0][j] = j;
            for(int i = 1;i <= length1;i++){
                for(int j = 1;j <= length2;j++){
                    if(word1[i-1] == word2[j-1])
                        result[i][j] = result[i-1][j-1];
                    else
                        result[i][j] = min(result[i-1][j-1],min(result[i-1][j],result[i][j-1])) + 1;
                }
            }
            return result[length1][length2];
        }
    };
  • 相关阅读:
    示波器测量电源的纹波
    hdoj 2717 Catch That Cow
    hdoj 1548 A strange lift
    hdoj 4586 Play the Dice
    zoj 2095 Divisor Summation
    hdoj 4704 Sum
    router-link传参
    字体自适应
    横向滚动div
    vue路由
  • 原文地址:https://www.cnblogs.com/ymjyqsx/p/9166268.html
Copyright © 2020-2023  润新知