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

做soho的网站深圳优美网络科技有限公司

做soho的网站,深圳优美网络科技有限公司,微营销是什么,官网模版源码583. 两个字符串的删除操作 题目链接/文章讲解/视频讲解:代码随想录 1.代码展示 //583.两个字符串的删除操作 int minDistance(string word1, string word2) {//step1 构建dp数组,dp[i][j]的含义是要使以i-1为结尾的word1和以j-1为结尾的word2//删除其元…

583. 两个字符串的删除操作

题目链接/文章讲解/视频讲解:代码随想录

1.代码展示

//583.两个字符串的删除操作
int minDistance(string word1, string word2) {//step1 构建dp数组,dp[i][j]的含义是要使以i-1为结尾的word1和以j-1为结尾的word2//删除其元素后相同所需最小的删除步数vector<vector<int>> dp(word1.size() + 1, vector<int>(word2.size() + 1, 0));//step2 状态转移方程//if (word1[i - 1] == word[j - 1]) 此时不需要删除,dp[i][j] = dp[i - 1][j - 1];//else ,dp[i][j] = min(dp[i - 1][j] + 1, dp[i][j - 1] + 1, dp[i - 1][j - 1] + 2);//对应着三种情况,删除word1[i - 1]或者word2[j - 1]或者同时删除//step3 初始化for (int i = 0; i <= word1.size(); i++) {dp[i][0] = i;}for (int j = 0; j <= word2.size(); j++) {dp[0][j] = j;}//step4 开始遍历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][j - 1] + 1, dp[i - 1][j - 1] + 2 });}}}return dp[word1.size()][word2.size()];
}

2.本题小节

        思考: 首先明确dp[i][j]的含义是下标以i-1为结尾的word1和以下标为j-1结尾的word2删除元素相等所需的最少步骤。当word1[i - 1] == word2[j - 1]时,此时不需要删除元素,因此dp[i][j] = dp[i - 1][j - 1];当不相等时,此时既可以删除word1下标i-1处的元素,对应的是dp[i - 1][j] + 1,也可以删除word2下标j-1处的元素,对应的是dp[i][j-1] + 1,也可以是同时删除掉,对应的是dp[i - 1][j - 1] + 2,因此dp[i][j]从上面三种情况中选择最小的。初始化时要注意,dp[i][0]对应的位置初始化为i,dp[0][j]对应位置初始化为j,这个很好想。

        步骤:注意思考的内容,按照步骤来即可。

72. 编辑距离

 题目链接/文章讲解/视频讲解:代码随想录

1.代码展示

//72.编辑距离
int minDistance(string word1, string word2) {//step1 构建dp数组,dp[i][j]的含义是要使以i-1为结尾的word1和以j-1为结尾的word2//相同需要操作(增加、删减、替换)的次数vector<vector<int>> dp(word1.size() + 1, vector<int>(word2.size() + 1, 0));//step2 状态转移方程//if (word1[i - 1] == word[j - 1]) 此时不需要处理,dp[i][j] = dp[i - 1][j - 1];//else ,dp[i][j] = min(dp[i - 1][j] + 1, dp[i][j - 1] + 1, dp[i - 1][j - 1] + 1);//对应着三种情况,删掉word1[i - 1](删除),删掉word2[j - 1](增加),替换//step3 初始化for (int i = 0; i <= word1.size(); i++) {dp[i][0] = i;}for (int j = 0; j <= word2.size(); j++) {dp[0][j] = j;}//step4 开始遍历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][j - 1] + 1, dp[i - 1][j - 1] + 1 });}}}return dp[word1.size()][word2.size()];
}

2.本题小节

        思考:dp[i][j]的含义是以下标i-1为结尾的word1通过增加,删除,替换能够变成以下标j-1为结尾的word2所需要的最小步骤。当word1[i - 1] == word2[j - 1]时,此时不需要操作,则dp[i][j] = dp[i - 1][j - 1];当不相等时,可以通过删除(删除word1[i - 1])、增加(删除word2[j - 1])、和替换(word1[i - 1]替换为word[j - 1])来操作,分别对应的时dp[i - 1][j] + 1、dp[i][j - 1] + 1、dp[i - 1][j - 1] + 1,选择最小情况,初始化和上题一样。

        基本步骤:根据思考和动态规划的步骤来即可。

编辑距离总结:代码随想录

http://www.yayakq.cn/news/592232/

相关文章:

  • 百度创建网站网站维护是什么工作
  • 博客网站做外贸可以吗3000块钱在朋友圈投放广告
  • 南昌公司做网站需要多少钱网站开发需求规格说明书
  • 网站建设电商学堂电子商务平台管理
  • 青浦做网站wordpress主题更换字体教程 | hu
  • 温州微网站开发重庆建设厂招聘信息网站
  • 做阿里巴巴网站口碑淘宝指数官网的网址
  • 网站主页用ps做wordpress 浮动窗口
  • 做网站有什么不好苏州手机网站建设服务
  • 网站怎么做跟踪链接常州seo技术
  • 网站标头设计焦作市网站建设哪家好
  • 泰安网站建设入门手机app界面设计分析
  • 苏州住房和城乡建设厅网站网页无法访问此页面怎么办?网页打不开怎么解决
  • 德州网站建设价格wordpress 后台密码
  • 秦皇岛网站seo网门app下载
  • 做视频找空镜头那个网站比较全太原网站建设公司怎么样
  • seo做的比较好的网站wordpress的文章tag标签
  • 做类似于58同城的网站做网站设计的电脑需要什么配置
  • 网站开发及企业推广手机网站建设用乐云seo
  • 以网站名为后缀的邮箱怎么做中国建设银行悦生活网站
  • 生态农业网站模板教育公司网站建设方案
  • 星月网络公司做的网站全国新农村建设中心网站
  • 长沙哪家公司做网站成都网络推广中联无限
  • dedecms大气金融企业网站模板怎么做菠菜网站
  • 音乐应用网站模板专业做学校网站的公司
  • 织梦资讯门户网站模板公司想建网站
  • 做网站需要会写代码吗英文网站建设费用
  • 河南网站建设多少钱服务器怎么做看视频的网站
  • 郑州网络推广厂家seo华为网站诊断报告
  • 有没有教做川菜的网站wordpress 下拉框链接