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

网站专题设计欣赏深圳鸿天顺网站建设

网站专题设计欣赏,深圳鸿天顺网站建设,网络工程师报名,seo如何提高排名583.两个字符串的删除操作 初始思路: 大概能想到定义dp数组为最少的删除次数 想不明白递归公式应该怎么推导 题解复盘#xff1a; 第一种思路#xff1a;dp[i][j]所需要删除元素的最少次数. 递归公式五部曲; 1)dp数组的定义#xff1a; dp[i][j]#xff1a;以i-1为结尾的…583.两个字符串的删除操作 初始思路: 大概能想到定义dp数组为最少的删除次数 想不明白递归公式应该怎么推导 题解复盘 第一种思路dp[i][j]所需要删除元素的最少次数. 递归公式五部曲; 1)dp数组的定义 dp[i][j]以i-1为结尾的字符串word1和以j-1位结尾的字符串word2想要达到相等所需要删除元素的最少次数. 2递归公式的推导; 当word1[i - 1] 与 word2[j - 1]相同的时候dp[i][j] dp[i - 1][j - 1]; 当word1[i - 1] 与 word2[j - 1]不相同的时候有三种情况 情况一删word1[i - 1]最少操作次数为dp[i - 1][j] 1 情况二删word2[j - 1]最少操作次数为dp[i][j - 1] 1 情况三同时删word1[i - 1]和word2[j - 1]操作的最少次数为dp[i - 1][j - 1] 2 那最后当然是取最小值所以当word1[i - 1] 与 word2[j - 1]不相同的时候递推公式dp[i][j] min({dp[i - 1][j - 1] 2, dp[i - 1][j] 1, dp[i][j - 1] 1}); 3)如何初始化 dp[i][0]word2为空字符串以i-1为结尾的字符串word1要删除多少个元素才能和word2相同呢很明显dp[i][0] i。 class Solution {public int minDistance(String word1, String word2) {char[] wc1 word1.toCharArray();char[] wc2 word2.toCharArray();int[][] dp new int[wc1.length1][wc2.length1];for(int i 0;iwc1.length1;i){dp[i][0] i;}for(int j 0;jwc2.length1;j){dp[0][j] j;}for(int i 1;iwc1.length1;i){for(int j 1;jwc2.length1;j){if(wc1[i-1]wc2[j-1]){dp[i][j] dp[i-1][j-1];}else{dp[i][j] Math.min(dp[i-1][j]1,Math.min(dp[i][j-1]1,dp[i-1][j-1]2));}}}return dp[wc1.length][wc2.length];} } 第二种思路只要求出两个字符串的最长公共子序列长度即可那么除了最长公共子序列之外的字符都是必须删除的最后用两个字符串的总长度减去两个最长公共子序列的长度就是删除的最少步数。 72.编辑距离 初始思路 1dp[i][j]表示最少的操作数 2推导递推公式 相等dp[i][j] dp[i-1][j-1]; 不相等 可以进行删除dp[i][j] dp[i-1][j]1; 插入 替换 怎么理解 题解复盘 重点看不懂的部分 操作二word2删除一个元素那么就是以下标i - 1为结尾的word1 与 j-2为结尾的word2的最近编辑距离 再加上一个操作。 即 dp[i][j] dp[i][j - 1] 1; 这里有同学发现了怎么都是删除元素添加元素去哪了。 word2添加一个元素相当于word1删除一个元素例如 word1 ad word2 aword1删除元素d 和 word2添加一个元素d变成word1a, word2ad 最终的操作数是一样 dp数组如下图所示意的 a a d---------- ---------------| 0 | 1 | | 0 | 1 | 2 |---------- ---------------a | 1 | 0 | a | 1 | 0 | 1 |---------- ---------------d | 2 | 1 |---------- 操作三替换元素word1替换word1[i - 1]使其与word2[j - 1]相同此时不用增删加元素。 可以回顾一下if (word1[i - 1] word2[j - 1])的时候我们的操作 是 dp[i][j] dp[i - 1][j - 1] 对吧。 那么只需要一次替换的操作就可以让 word1[i - 1] 和 word2[j - 1] 相同。 所以 dp[i][j] dp[i - 1][j - 1] 1; 综上当 if (word1[i - 1] ! word2[j - 1]) 时取最小的即dp[i][j] min({dp[i - 1][j - 1], dp[i - 1][j], dp[i][j - 1]}) 1; 3初始化 那么dp[i][0]就应该是i对word1里的元素全部做删除操作即dp[i][0] i; 同理dp[0][j] j此处可以理解为0字符需要增添相应的字符才能和word2相同等价于word2删除字符的操作数。 class Solution {public int minDistance(String word1, String word2) {char[] wc1 word1.toCharArray();char[] wc2 word2.toCharArray();int[][] dp new int[wc1.length1][wc2.length1];for(int i 0;iwc1.length1;i){dp[i][0] i;}for(int j 0;jwc2.length1;j){dp[0][j] j;}for(int i 1;iwc1.length1;i){for(int j 1;jwc2.length1;j){if(wc1[i-1]wc2[j-1]){dp[i][j] dp[i-1][j-1];}else{dp[i][j] Math.min(dp[i-1][j]1,Math.min(dp[i][j-1]1,dp[i-1][j-1]1));}}}return dp[wc1.length][wc2.length];} }
http://www.zqtcl.cn/news/842439/

相关文章:

  • 广告网站设计哪家快网站建设外包包含内容
  • 网页游戏网站模板张家口住房和城乡建设部网站
  • 冀州建设局网站公司制作网站多少钱
  • 建设个招聘网站黄页88和58那个推广好
  • 如何设计一个漂亮的网站电商设计素材
  • 沈阳建设银行网站首页果冻影视传媒有限公司
  • 建设部网站有建筑施工分包网站规划设计方案
  • 网站wap怎么做郑州做网站华久科技
  • 哪里网站开发好姜堰网站定制
  • 广东网站开发需要多少钱百度问答官网
  • 建设电影网站的关键wordpress简码怎么用
  • 做网站的linux程序代码北京公司减资流程
  • 四川省住房建设厅网站进不去wordpress 无限下拉菜单
  • 培训网站图片网络编程基础知识
  • 外销网站怎么做的上海住房与城乡建设部网站
  • 平台网站建设教程网站建设谈业务要知道什么
  • php网站开发试题济南网站排名公司
  • 没有官方网站怎么做seo优化营销推广平台都干什么的
  • 网盘搜索网站怎么做中国建设银行网站股份结构变化
  • 有ip怎么用自己的主机做网站惠州网站制作维护
  • 优质的网站制作在线编辑器
  • 盘锦做网站电话网络营销做私活网站
  • 有关网站建设的毕业设计外卖网站的建设与推广
  • cms 做网站用模板网站做h5宣传页多少钱
  • 坪山网站建设行业现状官方建网站有哪些步骤
  • 软件下载网站模版单页网站开发实例下载
  • 张家口网站建设vewanseo实战技术培训
  • 机加工网站室内设计联盟论坛
  • 汕头装修接单网站wordpress php加密
  • 重庆网站建设推广设置wordpress静态主页