news 2026/6/24 21:18:58

LeetCode热题100--72. 编辑距离--中等

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode热题100--72. 编辑距离--中等

题目

给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。

你可以对一个单词进行如下三种操作:

插入一个字符
删除一个字符
替换一个字符

示例 1:
输入:word1 = “horse”, word2 = “ros”
输出:3
解释:
horse -> rorse (将 ‘h’ 替换为 ‘r’)
rorse -> rose (删除 ‘r’)
rose -> ros (删除 ‘e’)

示例 2:
输入:word1 = “intention”, word2 = “execution”
输出:5
解释:
intention -> inention (删除 ‘t’)
inention -> enention (将 ‘i’ 替换为 ‘e’)
enention -> exention (将 ‘n’ 替换为 ‘x’)
exention -> exection (将 ‘n’ 替换为 ‘c’)
exection -> execution (插入 ‘u’)

题解

classSolution{publicintminDistance(Stringword1,Stringword2){intn1=word1.length();intn2=word2.length();int[][]dp=newint[n1+1][n2+1];// 第一行for(intj=1;j<=n2;j++)dp[0][j]=dp[0][j-1]+1;// 第一列for(inti=1;i<=n1;i++)dp[i][0]=dp[i-1][0]+1;for(inti=1;i<=n1;i++){for(intj=1;j<=n2;j++){if(word1.charAt(i-1)==word2.charAt(j-1))dp[i][j]=dp[i-1][j-1];elsedp[i][j]=Math.min(Math.min(dp[i-1][j-1],dp[i][j-1]),dp[i-1][j])+1;}}returndp[n1][n2];}}

解析

出自:自底向上和自顶向下

classSolution{publicintminDistance(Stringword1,Stringword2){// 获取 word1 的长度,记为 n1intn1=word1.length();// 获取 word2 的长度,记为 n2intn2=word2.length();// 创建二维 DP 表 dp,大小为 (n1+1) x (n2+1)// dp[i][j] 表示将 word1 的前 i 个字符转换为 word2 的前 j 个字符所需的最小操作数int[][]dp=newint[n1+1][n2+1];// 初始化第一行:dp[0][j] 表示将空字符串 "" 转换为 word2 的前 j 个字符// 只能通过连续插入 j 次实现,所以 dp[0][j] = jfor(intj=1;j<=n2;j++)dp[0][j]=dp[0][j-1]+1;// 初始化第一列:dp[i][0] 表示将 word1 的前 i 个字符转换为空字符串 ""// 只能通过连续删除 i 次实现,所以 dp[i][0] = ifor(inti=1;i<=n1;i++)dp[i][0]=dp[i-1][0]+1;// 填充 DP 表的其余部分(从 i=1 到 n1,j=1 到 n2)for(inti=1;i<=n1;i++){for(intj=1;j<=n2;j++){// 如果当前字符相同(word1[i-1] == word2[j-1]),则不需要操作,// 直接继承左上角的值:dp[i][j] = dp[i-1][j-1]if(word1.charAt(i-1)==word2.charAt(j-1))dp[i][j]=dp[i-1][j-1];else// 如果字符不同,则考虑三种操作中的最小代价:// 1. 替换:dp[i-1][j-1] + 1 (把 word1[i-1] 改成 word2[j-1])// 2. 插入:dp[i][j-1] + 1 (在 word1 后插入 word2[j-1])// 3. 删除:dp[i-1][j] + 1 (删除 word1[i-1])// 取三者最小值,并加 1(表示执行一次操作)dp[i][j]=Math.min(Math.min(dp[i-1][j-1],// 替换dp[i][j-1]),// 插入dp[i-1][j]// 删除)+1;}}// 返回最终结果:将整个 word1 转换为整个 word2 所需的最小操作数returndp[n1][n2];}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/12 9:26:22

HY-MT1.5-1.8B镜像使用教程:4090D单卡部署全流程详解

HY-MT1.5-1.8B镜像使用教程&#xff1a;4090D单卡部署全流程详解 随着多语言交流需求的不断增长&#xff0c;高质量、低延迟的翻译模型成为智能应用的核心组件。腾讯开源的混元翻译大模型HY-MT1.5系列&#xff0c;凭借其卓越的翻译性能和灵活的部署能力&#xff0c;迅速在开发…

作者头像 李华
网站建设 2026/6/17 15:34:10

Hunyuan-HY-MT1.5实战教程:构建私有化翻译SaaS服务完整流程

Hunyuan-HY-MT1.5实战教程&#xff1a;构建私有化翻译SaaS服务完整流程 随着全球化业务的不断扩展&#xff0c;高质量、低延迟、可定制的翻译服务成为企业出海、内容本地化和多语言沟通的核心需求。然而&#xff0c;依赖公有云翻译API存在数据隐私泄露、调用成本高、定制能力弱…

作者头像 李华
网站建设 2026/6/12 10:36:53

Hunyuan翻译模型如何适配4090D?算力匹配部署教程

Hunyuan翻译模型如何适配4090D&#xff1f;算力匹配部署教程 1. 引言&#xff1a;为何选择HY-MT1.5与4090D组合&#xff1f; 随着多语言交流需求的爆发式增长&#xff0c;高质量、低延迟的翻译模型成为智能应用的核心组件。腾讯开源的混元翻译大模型HY-MT1.5系列&#xff0c;凭…

作者头像 李华
网站建设 2026/6/18 15:24:15

HY-MT1.5-7B怎么快速上手?WMT25优胜模型部署入门必看

HY-MT1.5-7B怎么快速上手&#xff1f;WMT25优胜模型部署入门必看 1. 引言&#xff1a;腾讯开源的高性能翻译大模型 随着多语言交流需求的不断增长&#xff0c;高质量、低延迟的机器翻译技术成为AI应用落地的关键环节。腾讯近期开源了混元翻译大模型1.5版本&#xff08;HY-MT1.…

作者头像 李华
网站建设 2026/6/14 14:49:52

Hunyuan翻译模型支持术语干预?企业级定制实战案例

Hunyuan翻译模型支持术语干预&#xff1f;企业级定制实战案例 近年来&#xff0c;随着全球化业务的加速拓展&#xff0c;高质量、可定制的机器翻译需求日益增长。传统商业翻译API虽然稳定&#xff0c;但在术语一致性、上下文理解与数据隐私方面存在明显短板。腾讯开源的混元翻…

作者头像 李华
网站建设 2026/6/12 3:39:47

HY-MT1.5-7B WMT25夺冠技术揭秘:高性能翻译部署教程

HY-MT1.5-7B WMT25夺冠技术揭秘&#xff1a;高性能翻译部署教程 1. 引言&#xff1a;腾讯开源的混元翻译大模型 在多语言交流日益频繁的今天&#xff0c;高质量、低延迟的机器翻译已成为全球化应用的核心基础设施。近期&#xff0c;腾讯AI Lab正式开源了其最新一代翻译大模型—…

作者头像 李华