news 2026/4/12 2:42:54

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/4/8 21:30:47

HY-MT1.5-7B术语干预教程:专业词汇精准翻译部署方案

HY-MT1.5-7B术语干预教程&#xff1a;专业词汇精准翻译部署方案 1. 引言 随着全球化进程的加速&#xff0c;高质量、多语言互译能力已成为企业出海、学术交流和跨文化协作的核心需求。然而&#xff0c;通用翻译模型在面对专业术语密集、混合语言表达或特定格式要求的场景时&am…

作者头像 李华
网站建设 2026/4/1 1:06:16

HY-MT1.5-7B推理延迟高?多线程优化部署教程

HY-MT1.5-7B推理延迟高&#xff1f;多线程优化部署教程 在大模型时代&#xff0c;翻译任务正从传统的统计机器翻译向基于大语言模型的端到端翻译演进。腾讯近期开源的混元翻译大模型 HY-MT1.5 系列&#xff0c;凭借其对多语言、混合语种和复杂格式场景的强大支持&#xff0c;迅…

作者头像 李华
网站建设 2026/4/8 18:22:34

HY-MT1.5-1.8B浏览器集成:WebAssembly部署技术详解

HY-MT1.5-1.8B浏览器集成&#xff1a;WebAssembly部署技术详解 随着多语言交流需求的不断增长&#xff0c;高质量、低延迟的实时翻译能力成为智能应用的核心诉求。腾讯开源的混元翻译大模型HY-MT1.5系列&#xff0c;凭借其在翻译质量与部署灵活性上的双重突破&#xff0c;迅速…

作者头像 李华
网站建设 2026/4/7 21:34:19

微服务架构:构建模块化的AI Agent系统

微服务架构&#xff1a;构建模块化的AI Agent系统关键词&#xff1a;微服务架构、AI Agent系统、模块化、分布式系统、系统构建摘要&#xff1a;本文聚焦于使用微服务架构来构建模块化的AI Agent系统。首先介绍了相关背景&#xff0c;包括目的、预期读者、文档结构和术语表。接…

作者头像 李华
网站建设 2026/4/9 11:37:16

为什么HY-MT1.5部署总失败?术语干预功能配置实战教程是关键

为什么HY-MT1.5部署总失败&#xff1f;术语干预功能配置实战教程是关键 近年来&#xff0c;随着多语言交流需求的激增&#xff0c;高质量机器翻译模型成为跨语言应用的核心基础设施。腾讯开源的混元翻译大模型 HY-MT1.5 系列&#xff0c;凭借其卓越的语言覆盖能力和创新功能设…

作者头像 李华
网站建设 2026/4/9 9:35:16

HY-MT1.5-7B省钱实战指南:术语干预+上下文翻译,镜像免费部署方案

HY-MT1.5-7B省钱实战指南&#xff1a;术语干预上下文翻译&#xff0c;镜像免费部署方案 1. 背景与技术选型动机 随着多语言交流需求的激增&#xff0c;高质量、低延迟的翻译模型成为企业出海、内容本地化和跨语言服务的核心基础设施。然而&#xff0c;依赖商业API&#xff08…

作者头像 李华