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

动态规划之两个字符组/两个数组的dp问题

题目连接

1143. 最长公共子序列 - 力扣(LeetCode)

72. 编辑距离 - 力扣(LeetCode)

思路分析

这两道题有本质上就是一种类型的题,放在一起,便于帮助理解两个字符串的dp问题

最长公共子序列思路

代码实现
class Solution {public int longestCommonSubsequence(String text1, String text2) {int m=text1.length();int n=text2.length();int[][] f=new int[m+1][n+1];text1=" "+text1;text2=" "+text2;for(int i=1;i<m+1;i++){for(int j=1;j<n+1;j++){char first=text1.charAt(i);char second=text2.charAt(j);if(first==second){f[i][j]=f[i-1][j-1]+1;}else{f[i][j]=Math.max(f[i][j-1],f[i-1][j]);}}}return f[m][n];}
}

编辑距离思路

这个重点理解哦 插入和删除本质上是一样的

代码实现
class Solution {public int minDistance(String word1, String word2) {int m=word1.length();int n=word2.length();int[][] f=new int[m+1][n+1];for(int j=0;j<n+1;j++){f[0][j]=j;}for(int i=0;i<m+1;i++){f[i][0]=i;}word1=" "+word1;word2=" "+word2;for(int i=1;i<m+1;i++){for(int j=1;j<n+1;j++){if(word1.charAt(i)==word2.charAt(j)){f[i][j]=f[i-1][j-1];}else{f[i][j]=Math.min(f[i-1][j-1]+1,Math.min(f[i-1][j]+1,f[i][j-1]+1));}}}return f[m][n];    }
}
http://www.dtcms.com/a/507633.html

相关文章:

  • 【AI论文】UniVideo:面向视频的统一理解、生成与编辑
  • 获取resources目录下静态资源的两种方式
  • 一个域名可以做几个网站吗最好加盟网站建设
  • Android 自定义 View 如何设置默认尺寸
  • C#技术栈
  • 广东建设监理网站如何查企业的工商信息
  • INT301 Bio-computation 生物计算(神经网络)Pt.2 监督学习模型:感知器(Perceptron)
  • 机器学习(4)多特征与向量化
  • stripe/paypal
  • 机器学习(5)特征缩放与梯度下降收敛
  • 英飞凌推出首款100V aec合格GaN晶体管
  • 李宏毅机器学习笔记27
  • 机器学习作业七
  • openEuler安装jdk,nginx,redis
  • ffmpeg 交叉编译
  • Python编程之面向对象
  • 建设一个网站大概费用门户网站开发工具
  • OpenCV cv::Mat.type() 以及类型数据转换
  • Elasticsearch批量写入50万数据
  • 爬取GitHub开源项目信息并生成词云:从数据抓取到可视化实践
  • 做阀门的网站域名有了怎么建设网站
  • 西安交大Nat. Commun:749.276 cm²认证效率19.50%,通过IEC测试迈向产线
  • 百度站长平台登录网站图片自动轮换怎么做的
  • KuiklyUI 科普:UI 如何映射到 Android View 并完成渲染
  • 【2025-系统规划与管理师】第11章:信息系统治理
  • Python中如何实现数据库迁移
  • 第6部分:使用Netty的常见坑与注意事项
  • 广东企业品牌网站建设价格免费做网站的方法
  • 家政小程序系统开发:打造便捷高效的家政服务平台
  • CVE-2025-57833研究分析