算法训练营第56天|LeetCode 583.两个字符串的删除操作 72.编辑距离

LeetCode 583.两个字符串的删除操作

题目链接:

LeetCode 583.两个字符串的删除操作

代码:

cpp 复制代码
class Solution {
public:
    int minDistance(string word1, string word2) {
        int size_1 = word1.size();
        int size_2 = word2.size();
        vector<vector<int>>dp(size_1+1,vector<int>(size_2+1,0));
        for (int i = 0; i <= word1.size(); i++) dp[i][0] = i;
        for (int j = 0; j <= word2.size(); j++) dp[0][j] = j;
        for(int i=1;i<=size_1;i++){
            for(int j=1;j<=size_2;j++){
                if(word1[i-1]==word2[j-1]){
                    dp[i][j]=dp[i-1][j-1];
                }
                else{
                    dp[i][j]=min(dp[i][j-1]+1,dp[i-1][j]+1);
                }
            }
        }
        return dp[size_1][size_2];
    }
};

LeetCode 72.编辑距离

题目链接:

LeetCode 72.编辑距离

代码:

cpp 复制代码
class Solution {
public:
    int minDistance(string word1, string word2) {
        int size_1 = word1.size();
        int size_2 = word2.size();
        vector<vector<int>>dp(size_1+1,vector<int>(size_2+1));
        for(int i=0;i<=size_1;i++) dp[i][0] = i;
        for(int j=0;j<=size_2;j++) dp[0][j] = j;
        for(int i=1;i<=size_1;i++){
            for(int j=1;j<=size_2;j++){
                if(word1[i-1]==word2[j-1]) dp[i][j]=dp[i-1][j-1];
                else dp[i][j] = min(min(dp[i][j-1]+1,dp[i-1][j]+1),dp[i-1][j-1]+1);
            }
        }
        return dp[size_1][size_2];
    }
};
相关推荐
Hcoco_me7 小时前
大模型面试题17:PCA算法详解及入门实操
算法
跨境卫士苏苏7 小时前
亚马逊AI广告革命:告别“猜心”,迎接“共创”时代
大数据·人工智能·算法·亚马逊·防关联
云雾J视界8 小时前
当算法试图解决一切:技术解决方案主义的诱惑与陷阱
算法·google·bert·transformer·attention·算法治理
Xの哲學8 小时前
Linux Miscdevice深度剖析:从原理到实战的完整指南
linux·服务器·算法·架构·边缘计算
夏乌_Wx8 小时前
练题100天——DAY23:存在重复元素Ⅰ Ⅱ+两数之和
数据结构·算法·leetcode
立志成为大牛的小牛9 小时前
数据结构——五十六、排序的基本概念(王道408)
开发语言·数据结构·程序人生·算法
沿着路走到底9 小时前
将数组倒序,不能采用reverse,算法复杂度最低
算法
IDIOT___IDIOT9 小时前
KNN and K-means 监督与非监督学习
学习·算法·kmeans
a努力。9 小时前
腾讯Java面试被问:String、StringBuffer、StringBuilder区别
java·开发语言·后端·面试·职场和发展·架构