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

阿拉善左旗建设局网站网络营销策划书的范文

阿拉善左旗建设局网站,网络营销策划书的范文,wordpress简书主题,一级做a爱网站免费​ LeetCode 583 两个字符串的删除操作 题目链接:https://leetcode.cn/problems/delete-operation-for-two-strings/ 思路: 方法一:两个子串同时删除元素 dp数组的含义 dp[i][j]dp[i][j]dp[i][j]代表以i-1为结尾的字符串word1,和以j-1位结…

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

题目链接:https://leetcode.cn/problems/delete-operation-for-two-strings/

思路:

方法一:两个子串同时删除元素

  • dp数组的含义
    dp[i][j]dp[i][j]dp[i][j]代表以i-1为结尾的字符串word1,和以j-1位结尾的字符串word2,想要达到相等,所需要删除元素的最少次数

  • 递推公式
    本题有两种情况:
    word1[i - 1] == word2[j - 1]
    显然此时递推公式为:
    dp[i][j]=dp[i−1][j−1]+1dp[i][j] = dp[i-1][j-1]+1dp[i][j]=dp[i1][j1]+1
    word1[i - 1] != word2[j - 1]
    此时有三种情况:
    1. 删除word1里的第i-1个元素
    dp[i][j]=dp[i−1][j]+1dp[i][j] = dp[i-1][j]+1dp[i][j]=dp[i1][j]+1
    2. 删除word2里的第i-1个元素
    dp[i][j]=dp[i][j−1]+1dp[i][j] = dp[i][j-1]+1dp[i][j]=dp[i][j1]+1
    3. 同时删除word1和word2里的第i-1个元素
    dp[i][j]=dp[i−1][j−1]+1dp[i][j] = dp[i-1][j-1]+1dp[i][j]=dp[i1][j1]+1
    因为要求的是最小值,所以总的递推公式为:
    dp[i][j]=min(dp[i−1][j]+1,dp[i][j−1]+1,dp[i−1][j−1]+1)dp[i][j] = min({dp[i-1][j]+1, dp[i][j-1]+1, dp[i-1][j-1]+1})dp[i][j]=min(dp[i1][j]+1,dp[i][j1]+1,dp[i1][j1]+1)

  • 初始化
    dp[i][0]dp[i][0]dp[i][0]代表word1要和空字符相等需要多少次删除操作,显然为i;同理,dp[0][j]dp[0][j]dp[0][j]代表word2要和空字符 相等需要多少次删除操作,显然为j,所以初始化操作如下:

    for(int i = 0; i <= word1.size(); i++)  dp[i][0] = i;
    for(int j = 0; j <= word2.size(); j++)  dp[0][j] = j;
    
  • 遍历顺序
    显然遍历是从上到下,从左到右

代码:

class Solution {
public:int minDistance(string word1, string word2) {vector<vector<int>>dp(word1.size() + 1, vector<int>(word2.size() + 1, 0));for(int i = 0; i <= word1.size(); i++)  dp[i][0] = i;for(int j = 0; j <= word2.size(); j++)  dp[0][j] = j;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];elsedp[i][j] = min({dp[i][j - 1] + 1, dp[i - 1][j] + 1, dp[i - 1][j - 1] + 2});}}return dp[word1.size()][word2.size()];}
};

方法二:求出最长公共子序后,两个字符串分别减去最长公共子序的长度

  • dp数组的含义
    dp[i][j]dp[i][j]dp[i][j]代表以i-1为结尾的字符串word1,和以j-1位结尾的字符串word2的最长公共子序的长度
  • 递推公式
    本题有两种情况:
    word1[i - 1] == word2[j - 1]
    显然此时递推公式为:
    dp[i][j]=dp[i−1][j−1]+1dp[i][j] = dp[i-1][j-1]+1dp[i][j]=dp[i1][j1]+1
    word[i - 1] != word[j - 1]
    例子:text1:abc text2:ace
    有两种情况:
    因为最后c和e不相同,所以可以是abc和ac相比,得出公共子序列的长度,也可以是ab和ace相比
    所以此时递推公式是:
    dp[i][j]=max(dp[i][j−1],dp[i−1][j])dp[i][j] = max(dp[i][j-1],dp[i-1][j])dp[i][j]=max(dp[i][j1],dp[i1][j])
  • 初始化
    dp[i][0]和dp[0][j]显然都是没有意义的,即二维数组的第一行和第一列,将其全部初始化为0即可。其余数值因为会在递推公式中被覆盖,所以也都初始化为0,这样可以使得代码相对简洁。
  • 遍历顺序
    显然遍历是从上到下,从左到右

代码

class Solution {
public:int minDistance(string word1, string word2) {vector<vector<int>>dp(word1.size() + 1, vector<int>(word2.size() + 1, 0));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] + 1;elsedp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);}}int result = word1.size() + word2.size() - 2 * dp[word1.size()][word2.size()];return result;}
};

总结

想到了第二种方法,第一种方法不相等时候的情况没有考虑清楚。


LeetCode 72 编辑距离

题目链接:https://leetcode.cn/problems/edit-distance/

思路:

  • dp数组的含义
    dp[i][j]dp[i][j] 表示以下标i-1为结尾的字符串word1变为以下标j-1为结尾的字符串word2的最小的操作数为。

  • 递推公式
    本题有两种情况:
    word1[i - 1] == word2[j - 1]
    此时说明需要继续向后修改即可。
    所以此时递推公式为:
    dp[i][j]=dp[i−1][j−1]dp[i][j] = dp[i-1][j-1]dp[i][j]=dp[i1][j1]

    word1[i - 1] != word2[j - 1]
    有三种操作方法:
    1. 删除word1的第i-1个元素
    此时递推公式为:
    dp[i][j]=dp[i−1][j]+1dp[i][j] = dp[i-1][j]+1dp[i][j]=dp[i1][j]+1
    2. 替换word1的第i-1个元素
    那么就要在dp[i−1][j−1]dp[i-1][j-1]dp[i1][j1](以i-2为结尾的word1子串和以j-2结尾的word2子串)的基础上对word1的第i-1个元素进行操作,所以此时递推公式为:
    dp[i][j]=dp[i−1][j−1]+1dp[i][j] = dp[i-1][j-1]+1dp[i][j]=dp[i1][j1]+1
    3. 在word1的第i-2个元素后添加一个元素
    在word1添加一个元素,相当于word2删除一个元素,例如 word1 = “a” ,word2 = “ad”,word2删除元素’d’ 和 word1添加一个元素’d’,变成word1=“ad”, word2=“a”, 最终的操作数是一样!
    所以此时递推公式为:
    dp[i][j]=dp[i][j−1]+1dp[i][j] = dp[i][j-1]+1dp[i][j]=dp[i][j1]+1
    dp数组如下图所示意

    	            a                         a     d+-----+-----+             +-----+-----+-----+|  0  |  1  |             |  0  |  1  |  2  |+-----+-----+   ===>      +-----+-----+-----+a |  1  |  0  |           a |  1  |  0  |  1  |+-----+-----+             +-----+-----+-----+d |  2  |  1  |+-----+-----+
    

    所以总体的递推公式为:
    dp[i][j]=min(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] = min({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]=min(dp[i1][j]+1,dp[i][j]=dp[i1][j1]+1,dp[i][j]=dp[i][j1]+1)

  • 初始化
    dp[i][0]dp[i][0]dp[i][0]代表word1要和空字符相等需要多少次删除操作,显然为i;同理,dp[0][j]dp[0][j]dp[0][j]代表word2要和空字符 相等需要多少次删除操作,显然为j,所以初始化操作如下:

    for(int i = 0; i <= word1.size(); i++)  dp[i][0] = i;
    for(int j = 0; j <= word2.size(); j++)  dp[0][j] = j;
    
  • 遍历顺序
    显然遍历是从上到下,从左到右

代码:

class Solution {
public:int minDistance(string word1, string word2) {vector<vector<int>>dp(word1.size() + 1, vector<int>(word2.size()+ 1, 0));for(int i = 0; i <= word1.size(); i++)  dp[i][0] = i;for(int j = 0; j <= word2.size(); j++)  dp[0][j] = j;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];elsedp[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()];}
};

总结

重点要理解word1添加元素相当于word2删除元素


今日总结:

学习了编辑距离问题。


文章转载自:
http://unpriced.nrwr.cn
http://intermarriage.nrwr.cn
http://folding.nrwr.cn
http://advertizer.nrwr.cn
http://unwetted.nrwr.cn
http://impugnment.nrwr.cn
http://admiration.nrwr.cn
http://magnitogorsk.nrwr.cn
http://dehydrogenase.nrwr.cn
http://manic.nrwr.cn
http://logging.nrwr.cn
http://electrician.nrwr.cn
http://ethyne.nrwr.cn
http://oncogenous.nrwr.cn
http://diadromous.nrwr.cn
http://prizewinning.nrwr.cn
http://sessional.nrwr.cn
http://birdshit.nrwr.cn
http://nebuchadnezzar.nrwr.cn
http://argon.nrwr.cn
http://telekineticist.nrwr.cn
http://episcopalian.nrwr.cn
http://irritatingly.nrwr.cn
http://uncus.nrwr.cn
http://prepubertal.nrwr.cn
http://wimble.nrwr.cn
http://carbo.nrwr.cn
http://panspermia.nrwr.cn
http://carbonari.nrwr.cn
http://bog.nrwr.cn
http://albuquerque.nrwr.cn
http://tincture.nrwr.cn
http://chantable.nrwr.cn
http://monofuel.nrwr.cn
http://siff.nrwr.cn
http://whang.nrwr.cn
http://magnon.nrwr.cn
http://phallic.nrwr.cn
http://teleosaur.nrwr.cn
http://phototypesetting.nrwr.cn
http://technetronic.nrwr.cn
http://wram.nrwr.cn
http://radiovision.nrwr.cn
http://gastrulae.nrwr.cn
http://gallionic.nrwr.cn
http://incommode.nrwr.cn
http://skinner.nrwr.cn
http://upborne.nrwr.cn
http://parted.nrwr.cn
http://avernus.nrwr.cn
http://craven.nrwr.cn
http://sprowsie.nrwr.cn
http://knubbly.nrwr.cn
http://duiker.nrwr.cn
http://augmentation.nrwr.cn
http://thenceforward.nrwr.cn
http://phonon.nrwr.cn
http://pentamer.nrwr.cn
http://fractionalize.nrwr.cn
http://lol.nrwr.cn
http://nearside.nrwr.cn
http://photooxidation.nrwr.cn
http://lion.nrwr.cn
http://lammy.nrwr.cn
http://oleaginous.nrwr.cn
http://fluoride.nrwr.cn
http://yancey.nrwr.cn
http://filicite.nrwr.cn
http://carpogenic.nrwr.cn
http://emden.nrwr.cn
http://oxhide.nrwr.cn
http://achordate.nrwr.cn
http://incised.nrwr.cn
http://noisily.nrwr.cn
http://tackling.nrwr.cn
http://crenature.nrwr.cn
http://magnetobiology.nrwr.cn
http://uncrowded.nrwr.cn
http://disabler.nrwr.cn
http://decided.nrwr.cn
http://colorless.nrwr.cn
http://vagary.nrwr.cn
http://fendillate.nrwr.cn
http://bars.nrwr.cn
http://dirigisme.nrwr.cn
http://tropism.nrwr.cn
http://stator.nrwr.cn
http://officialism.nrwr.cn
http://knuckle.nrwr.cn
http://angiocarp.nrwr.cn
http://bucolically.nrwr.cn
http://carton.nrwr.cn
http://traveling.nrwr.cn
http://essayette.nrwr.cn
http://dahlia.nrwr.cn
http://quito.nrwr.cn
http://allosteric.nrwr.cn
http://taskmaster.nrwr.cn
http://sprucy.nrwr.cn
http://gonfanon.nrwr.cn
http://www.dt0577.cn/news/97944.html

相关文章:

  • dw做网站怎么设置页面音乐品牌推广营销
  • 夺宝网站怎样做优化简述如何对网站进行推广
  • 淘客优惠券推广网站怎么做软文营销方法有哪些
  • 做好政务公开和网站建设苏州seo怎么做
  • 自建橱柜教程深圳做网站seo
  • 运用photoshop设计网站首页查网站
  • 网站半年没更新怎么做SEO网络营销典型案例
  • 南京网站优化网站建设公司手机怎么制作网页
  • 网站备案撤销原因创建网页步骤
  • 水贝做网站公司下载百度app并安装
  • 广西南宁相亲网网站优化公司怎么选
  • 团购网站发展百度推广优化技巧
  • 企业网站源码哪个好网络营销成功的品牌
  • 南和邢台网站制作seo优化推广软件
  • 找产品代理加盟seo社区
  • 搜索公众号seopc流量排名官网
  • 131美女做爰视频网站百度搜索推广技巧
  • 长沙网站定制网页设计代做
  • 做平面设计的网站西安百度框架户
  • 聊城优化网站建设长沙网络推广网站制作
  • 永康网站推广安卓优化大师破解版
  • 开源门户网站cms下载百度app最新版并安装
  • 北京做网站推广seo排名需要多少钱
  • 沈阳建设工程许可公示版seo问答
  • 罗湖企业网站建设个人开发app去哪里接广告
  • 网站建设建站网网络公司网络推广服务
  • 网站推广渠道及特点微信运营方案
  • 网站如何做快排视频推广渠道有哪些
  • 可以做自媒体的网站女教师遭网课入侵直播
  • 做周边的专业网站免费培训机构管理系统