当前位置: 首页 > news >正文

动规【力扣】72. 编辑距离

数组含义:
dp[i][j]含义是word1的i长度字符串和word2的j长度字符串所需的最少编辑距离。

递推公式:
1.当word1.charAt(i-1)==word2.charAt(j-1)时,不用做任何操作,所以dp[i][j] = dp[i-1][j-1];
2.当word1.charAt(i-1)!=word2.charAt(j-1)时,可以进行删除、添加、替换三种操作。
当word1删除一个元素,那就是dp[i-1][j]+1;而word2删除一个元素,那就是dp[i][j-1]+1。
添加操作计算方式和删除是一样的。
替换的话相当于经过一个操作使word1.charAt(i-1)==word2.charAt(j-1)了,所以是dp[i-1][j-1]+1。
示意图如下,我们每次只考虑最后一个字符进行什么操作:
在这里插入图片描述

class Solution {
    public int minDistance(String word1, String word2) {
        int n = word1.length();
        int m = word2.length();
        int[][] dp = new int[n+1][m+1];
        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.charAt(i-1)==word2.charAt(j-1)){
                    dp[i][j] = dp[i-1][j-1];
                }else{
                    dp[i][j] = Math.min(Math.min(dp[i-1][j],dp[i][j-1]),dp[i-1][j-1])+1;
                }
            }
        }
        return dp[n][m];
    }
}

推荐讲解视频:
【[轻松掌握动态规划]6.编辑距离】 https://www.bilibili.com/video/BV1sA411B73r/?share_source=copy_web&vd_source=df60a3ecf18eb08f28cd88116b8bee92

相关文章:

  • 【Python运维】用Python自动化AWS资源管理:利用boto3实现高效管理S3桶和EC2实例
  • MySQL-简介与基本命令
  • LeetCode 热题 100----1.两数之和
  • 题目 3216 ⭐团建⭐【DFS】蓝桥杯2024年第十五届省赛
  • AI 编译器学习笔记之十六 -- TVM
  • 在 MyBatis 中,若数据库字段名与 SQL 保留字冲突解决办法
  • Spring Boot Gradle 项目中使用 @Slf4j 注解
  • 容器与虚拟机:云时代的底层架构博弈
  • 玩转大语言模型——Ubuntu系统环境下使用llama.cpp进行CPU与GPU混合推理deepseek
  • 实时金融信息搜索的新突破:基于大型语言模型的智能代理框架
  • 腾讯云AI代码助手评测:如何智能高效完成Go语言Web项目开发
  • rnmapbox
  • python3.13安装教程【2025】python3.13超详细图文教程(包含安装包)
  • linux离线安装ollama并部署deepseek-r1模型 指南
  • vscode 查看3d
  • 论文阅读 EEG-Inception
  • 自动化学习-使用git进行版本管理
  • DDK:Distilling Domain Knowledge for Efficient Large Language Models
  • Linux系列:如何调试 malloc 的底层源码
  • linux ubuntu系统运行python虚拟环境,启用端口服务和定时任务
  • php动态网站开发人民邮电出版社/网络营销策略分析案例
  • 本地网站开发环境搭建/seo优化技术厂家
  • 小米发布会图文/南宁seo外包服务
  • 安徽省淮南市城乡建设委员会网站/百度高级检索入口
  • 河南省建设厅厅长/重庆白云seo整站优化
  • 做网页的网站/app推广团队