代码随想录算法训练营day44、45|动态规划part11、part12

这两天处理的都是子序列和问题,题目之间相关性比较大。1143最长公共子序列问题和1035其实思路是一样的,1035只是需要自己把题目抽象成最长公共子序列的模型。这类题目的共同特点就是dp[i][j]表示长度为[0, i - 1]的字符串text1与长度为[0, j - 1]的字符串text2的最长公共子序列为dp[i][j],这样方便初始化操作。另外,在72编辑距离中很巧妙的一个思想就是逆向思维的运用,要想让两个字符串相同,让其中一个字符串增加一个字符可以看作是将另一个字符串减去一个字符。另外,这类题目的递推公式都是由前面推导而来,在dp[i-1][j-1]的基础上操作,理解这点就可以写出递推公式了。

53最大子序和这道题与编辑距离系列题目思路稍有不同,和贪心的思路类似,

dp[i]=max(dp[i-1]+nums[i],num[i])

这道题的特点是不能将某个数跳过,所以第i个数只有两个状态:一是将前面的总和加上该数,二是舍弃前面的总和,以该数为起点,所以可以写出上面的状态转移方程。

1143.最长公共子序列

视频讲解:动态规划子序列问题经典题目 | LeetCode:1143.最长公共子序列_哔哩哔哩_bilibili

代码随想录

1035.不相交的线

视频讲解:动态规划之子序列问题,换汤不换药 | LeetCode:1035.不相交的线_哔哩哔哩_bilibili

代码随想录

53. 最大子序和

视频讲解:看起来复杂,其实是简单动态规划 | LeetCode:53.最大子序和_哔哩哔哩_bilibili

代码随想录

392.判断子序列

代码随想录

115.不同的子序列

但相对于刚讲过 392.判断子序列,本题 就有难度了 ,感受一下本题和 392.判断子序列 的区别。

代码随想录

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

本题和动态规划:115.不同的子序列 相比,其实就是两个字符串都可以删除了,情况虽说复杂一些,但整体思路是不变的。

代码随想录

72. 编辑距离

最终我们迎来了编辑距离这道题目,之前安排题目都是为了 编辑距离做铺垫。

代码随想录

编辑距离总结篇

做一个总结吧

代码随想录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值