代码随想录 day 44 最长公共子序列 | 不相交的线 | 最大子序和 | 判断子序列

最长公共子序列

最长公共子序列

解题思路

本题dp数组的含义是最长公共序列,而后同时遍历两个字符串,遇到相同的字母是公共子序列+1,否则取两个字符串的公共子序列中较长的一个。

知识点

动态规划,子序列

心得

没有想到比较两个字符串的公共子序列。我自己是遇到相同字母时将所有后续的长度都设置为该长度,这样做也能实现,但是运行速度很慢。

不相交的线

不相交的线

解题思路

不相交的线就是找最长的公共子序列,该子序列中的线都不会相交。

知识点

最长公共子序列

心得

跟最长公共子序列的做法一摸一样

最大子序和

最大子序和

解题思路

和贪心的算法类似,dp数组的含义在本题代表着以i结尾时的最大值,当和小于零时别忘记将值重新设置为0,以此保证最大值。

知识点

贪心,动态规划

心得

做过了贪心就会发现这道题非常类似。

判断子序列

判断子序列

解题思路

也是找最长公共子序列,但是这次只关注字符串t,s的子序列长短不用管他

知识点

动态规划

心得

简单的题目

posted @ 2024-08-03 21:34  不进育碧不改名  阅读(67)  评论(0编辑  收藏  举报