此题我的往期文章推荐:
leetCode 1143.最长公共子序列 动态规划 + 滚动数组-CSDN博客
https://blog.csdn.net/weixin_41987016/article/details/133689692?spm=1001.2014.3001.5501leetCode 1143.最长公共子序列 一步步思考动态规划 + 优化空间复杂度_呵呵哒( ̄▽ ̄)"的博客-CSDN博客
https://blog.csdn.net/weixin_41987016/article/details/133702506?spm=1001.2014.3001.5501


(1)S1 和 S2末尾字符相同时,那就在 S1前 i-1个字符 与 S2前 j-1个字符 的LCS基础上再加1

(2)S1 和 S2末尾字符不相同时,两种选择方案:
比较这两个LCS谁最大,就选最大的LCS为最优解



我们可以从这张表格可以得到的信息,S1 与 S2 的 最长公共子序列长度为 4,且最长公共子序列有"BCAB" 和 "BDAB",如下验证:
① 最长公共子序列有"BCAB"
② 最长公共子序列有"BDAB"
伪代码:

可以在力扣运行的代码我在这往期文章里已经写了,大家可以移步去看!!!文章链接在此文的首行~
参考B站up主邋遢大哥233做的课堂笔记:
[轻松掌握动态规划]5.最长公共子序列 LCS_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV1ey4y1d7oD/?spm_id_from=333.999.0.0&vd_source=a934d7fc6f47698a29dac90a922ba5a3来自up主邋遢大哥233的课堂截图:
