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

【leetcode hot 100 72】编辑距离

解法一:递归

在这里插入图片描述

解法二:(动态规划)①定义:dp[i][j]为word1中前i个字符转化为word2中前j个字符所需操作数;dp[m+1][n+1] ②初始状态:dp[0][j]=j(0变为j,需要j步),dp[i][0]=i(i变为0,需要i步) ③状态转移方程:若word1.charAt(i)==word2.charAt(j),则不需要变化dp[i][j]=dp[i-1][j-1];否则,dp[i][j]=Math.min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1])+1,其中dp[i-1][j]执行word1插入word2.charAt(j),dp[i][j-1]执行word1删除word2.charAt(j),dp[i-1][j-1]执行word1.charAt(i)替换为word2.charAt(j)

class Solution {public int minDistance(String word1, String word2) {// 定义:dp[i][j]为word1中前i个字符转化为word2中前j个字符所需操作数;dp[m+1][n+1]// 初始状态:dp[0][j]=j(0变为j,需要j步),dp[i][0]=i(i变为0,需要i步)// 状态转移方程:若word1.charAt(i)==word2.charAt(j),则不需要变化dp[i][j]=dp[i-1][j-1];否则,dp[i][j]=Math.min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1])+1,其中dp[i-1][j]执行word1插入word2.charAt(j),dp[i][j-1]执行word1删除word2.charAt(j),dp[i-1][j-1]执行word1.charAt(i)替换为word2.charAt(j)int m = word1.length();int n = word2.length();int[][] dp = new int[m+1][n+1];for(int i=0;i<=m;i++){dp[i][0]=i;}for(int j=0;j<=n;j++){dp[0][j]=j;}for(int i=1;i<=m;i++){for(int j=1;j<=n;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[m][n];}
}

注意:

  • 模式识别:一旦涉及子问题,可以用自顶向下(从最难的状态开始计算)的递归和自底向上(从最简单的状态开始计算)的动态规划
  • 涉及到返回过程时用递归;返回数字时用动态规划
  • 涉及‘和’或‘前几个字符’定义多一个数,即dp[m+1][n+1]
  • 取字符时要-1,因为dp[m+1][n+1]要比字符串下标大1,word2.charAt(j-1);

相关文章:

  • MCP认证难题破解指南
  • 单片机非耦合业务逻辑框架
  • Sentinel源码—2.Context和处理链的初始化二
  • (51单片机)LCD显示日期时间时钟(DS1302时钟模块教学)(LCD1602教程)
  • STM32提高篇: 以太网通讯
  • S06-Kep的跨通道传输
  • 二极管详解:特性参数、选型要点与分类
  • 【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——CAN、CAN FD测试 #FDCAN
  • Qt/C++学习系列之QTreeWidget的简单使用记录
  • IPD项目管理的“黄金三角“在2025年是否需要重构?
  • 基于RV1126开发板获取系统温度
  • WPS Office安卓版文档编辑功能与兼容性评测【高效编辑】
  • uniappx项目上架各手机平台
  • Uniapp:消息提示框
  • vue3 vite创建项目 vite配置、pinia配置
  • 经典算法 判断一个图中是否有环
  • 界面控件DevExpress .NET MAUI v24.2亮点:MVVM功能增强
  • Rust学习之实现命令行小工具minigrep(二)
  • qt/C++面试题自用学习(更新中)
  • Gitlab SSH Jenkins Pipeline Supervisor部署
  • 周劼已任中国航天科技集团有限公司董事、总经理、党组副书记
  • 是否进行了及时有效处置?伤者情况如何?辽阳市相关负责人就饭店火灾事故答问
  • 广东省副省长刘红兵跨省任湖南省委常委、宣传部部长
  • “ChatGPT严选”横空出世了,“DeepSeek严选”还要等多久?
  • 俄外长:俄将在不损害伙伴关系前提下发展对美关系
  • 怒江州委常委、泸水市委书记余剑锋调任云南省委省直机关工委副书记