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

做百度移动端网站优化应用商店关键词优化

做百度移动端网站优化,应用商店关键词优化,合肥做网站mdyun,东营网站开发招聘代码随想录算法训练营第59天#xff5c;动态规划part16#xff5c;583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结篇 583. 两个字符串的删除操作 583. 两个字符串的删除操作 思路#xff1a; 思路见代码 代码#xff1a; python class Solution(object):de…代码随想录算法训练营第59天动态规划part16583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结篇 583. 两个字符串的删除操作 583. 两个字符串的删除操作 思路 思路见代码 代码 python class Solution(object):def minDistance(self, word1, word2)::type word1: str:type word2: str:rtype: int# dp[i][j] 表示word1的0-(i-1)索引的子串与word2的0-(j-1)索引的子串 使得相同所需的最小步数dp[i][j]如何推出如果word1[i-1] word2[j-1]:不需要删除操作dp[i][j] dp[i-1][j-1]如果word1[i-1] ! word2[j-1]:需要删除有两种情况1. 仅操作word1子串 2. 仅操作word2子串 3. 操作word1和word2情况1:word1删除一个字符 dp[i][j] dp[i][j-1] 1情况2:word2删除一个字符 dp[j][i] dp[i-1][j] 1情况3:word1和word2各删除一个字符 dp[i][j] dp[i-1][j-1] 2取最小dp[i][j] min(情况1, 情况2, 情况3)初始化:dp[0][0] 0dp[0][j] jdp[i][0] idp [[0] * (len(word2)1) for _ in range(len(word1)1)]for i in range(len(word1)1):dp[i][0] ifor j in range(len(word2)1):dp[0][j] jprint(dp)for i in range(1, len(word1)1):for j in range(1, len(word2)1):if word1[i-1] word2[j-1]:dp[i][j] dp[i-1][j-1]else:dp[i][j] min(dp[i][j-1] 1, dp[i-1][j] 1, dp[i-1][j-1] 2) print(dp)return dp[-1][-1]代码随想录 思路一模一样哈哈哈我终于独自做对一回了 72. 编辑距离 72. 编辑距离 思路 编辑距离终于来了这道题目如果大家没有了解动态规划的话会感觉超级复杂。 编辑距离是用动规来解决的经典题目这道题目看上去好像很复杂但用动规可以很巧妙的算出最少编辑距离。 接下来我依然使用动规五部曲对本题做一个详细的分析 确定dp数组dp table以及下标的含义 dp[i][j] 表示以下标i-1为结尾的字符串word1和以下标j-1为结尾的字符串word2最近编辑距离为dp[i][j]。 确定递推公式 在确定递推公式的时候首先要考虑清楚编辑的几种操作整理如下 if (word1[i - 1] word2[j - 1])不操作 if (word1[i - 1] ! word2[j - 1])增删换也就是如上4种情况。 if (word1[i - 1] word2[j - 1]) 那么说明不用任何编辑dp[i][j] 就应该是 dp[i - 1][j - 1]即dp[i][j] dp[i - 1][j - 1]; if (word1[i - 1] ! word2[j - 1])此时就需要编辑了如何编辑呢 操作一word1删除一个元素那么就是以下标i - 2为结尾的word1 与 j-1为结尾的word2的最近编辑距离 再加上一个操作。 即 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 “a”word1删除元素’d’ 和 word2添加一个元素’d’变成word1“a”, word2“ad” 最终的操作数是一样 dp数组如下图所示意的 操作三替换元素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; if (word1[i - 1] word2[j - 1]) {dp[i][j] dp[i - 1][j - 1]; } else {dp[i][j] min({dp[i - 1][j - 1], dp[i - 1][j], dp[i][j - 1]}) 1; }dp数组如何初始化 再回顾一下dp[i][j]的定义 dp[i][j] 表示以下标i-1为结尾的字符串word1和以下标j-1为结尾的字符串word2最近编辑距离为dp[i][j]。 那么dp[i][0] 和 dp[0][j] 表示什么呢 dp[i][0] 以下标i-1为结尾的字符串word1和空字符串word2最近编辑距离为dp[i][0]。 那么dp[i][0]就应该是i对word1里的元素全部做删除操作即dp[i][0] i; 同理dp[0][j] j; 所以C代码如下 for (int i 0; i word1.size(); i) dp[i][0] i; for (int j 0; j word2.size(); j) dp[0][j] j;确定遍历顺序 从如下四个递推公式 dp[i][j] dp[i - 1][j - 1] dp[i][j] dp[i - 1][j - 1] 1 dp[i][j] dp[i][j - 1] 1 dp[i][j] dp[i - 1][j] 1 可以看出dp[i][j]是依赖左方上方和左上方元素的如图 所以在dp矩阵中一定是从左到右从上到下去遍历。 for (int i 1; i word1.size(); i) {for (int j 1; j word2.size(); j) {if (word1[i - 1] word2[j - 1]) {dp[i][j] dp[i - 1][j - 1];}else {dp[i][j] min({dp[i - 1][j - 1], dp[i - 1][j], dp[i][j - 1]}) 1;}} }举例推导dp数组 以示例1为例输入word1 “horse”, word2 ros为例dp矩阵状态图如下 代码 python class Solution:def minDistance(self, word1: str, word2: str) - int:dp [[0] * (len(word2)1) for _ in range(len(word1)1)]for i in range(len(word1)1):dp[i][0] ifor j in range(len(word2)1):dp[0][j] jfor i in range(1, len(word1)1):for j in range(1, len(word2)1):if word1[i-1] word2[j-1]:dp[i][j] dp[i-1][j-1]else:dp[i][j] min(dp[i-1][j-1], dp[i-1][j], dp[i][j-1]) 1return dp[-1][-1]编辑距离总结 链接
http://www.zqtcl.cn/news/706812/

相关文章:

  • 安康网站开发公司报价网站开发人员考核
  • 谷歌网站 百度清苑住房和城乡建设局网站
  • 南宁世尊商贸网站建设如何查看一个网站是否备案
  • h5手机网站怎么做搜索引擎关键词怎么选
  • 弱电网站源码工程造价建设信息网站
  • 村级网站模板做公司永久免费网站什么好
  • 厦门做网站培训安康市电梯公司
  • 江苏水利建设网站排行榜百度
  • 营销导向的企业网站优化wordpress制作企业
  • 株洲网站建设公司wordpress资讯类主题破解版
  • 网站导航栏设计要求wordpress直达按钮
  • 网站建设寻找可以途径网站制作的目的
  • 私募基金网站建设wordpress快讯插件
  • 无锡网站搜索引擎优化校园二级网站建设
  • 用vps刷网站流量要怎么做云主机开网站教程
  • 个体户经营异常如何网上解除深圳seo云哥
  • 网站建设科研申报书沧州网站建设定制价格
  • 家纺营销型网站wordpress演示数据
  • 中卫建设厅网站中国纪检监察报
  • 网站建设费如何核算如何给网站做权重
  • 东莞营销型高端网站建设网页专题设计
  • 神兵网站建设互联网个人用户网站
  • 类似视频教程网站的wordpress主题网页设计用什么尺寸的画布好
  • 仿模板电影网站线上销售的方法和技巧
  • 漳州建设银行网站首页速成建站
  • 网站建立的链接不安全怎么解决学校网站怎样建设
  • 信阳市工程建设信息网站wordpress段子
  • 网站建设和网络搭建是一回事吗长沙网站搭建优化
  • 基础网站怎么做石景山公司
  • 吉他谱网站如何建设wordpress主题字体用隶书