代码随想录算法训练营第四十四天|LeetCode1143 最长公共子序列、LeetCode1035 不相交的线、LeetCode53 最大子序和、LeetCode392 判断子序列

LeetCode1143 最长公共子序列

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

第一想法:一个2D的DP,dp[i][j] = dp[i - 1][j - 1] + 1,dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]), dp[i][j]代表到text1[i - 1] 与 text2[j - 1] 位置,相通子序列的个数。

看完随想录后:dp[i][j] = max(dp[i - 1][j], dp[i][j - 1])的理解不一样

难点:无

LeetCode1035 不相交的线

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

第一想法:基本和上一题一样

看完随想录后:一致

难点:无

LeetCode53 最大子序和

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

第一想法:没什么想法

看完随想录后:dp[i] 代表到nums[i]位置,最大的加和是多少,需要注意,dp的最后一位不一定是最大的,有可能再dp的中间得出结果,那么就需要额外的一个变量去记录全局最高结果。

难点:理解用dp的方法,每次要抉择是否要选当前的数,如果不选,就要重新开始。

LeetCode392 判断子序列

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

看完随想录后:其实确实一样,我把s的长度初始化给了dp,那么dp最后一个数如果是0 那么就说明s都有在t里的对应,如果不是0,说明有的s没有出现在t中。

难点:用dp的思路写好复杂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值