最长公共子序列|最长公共子串|最长重复子串|最长不重复子串|最长回文子串|最长递增子序列|最大子数组和
文章作者:Yx.Ac 文章来源:勇幸|Thinking (http://www.ahathinking.com) 转载请注明,谢谢合作。
以后新博客写的文章挑一些粘过来,就当给新博客增加点入链吧,哈哈
本篇博文地址: http://www.ahathinking.com/archives/124.html
最近练手,整理了一个“最”系列的主题,这些题目有点绕,个别的还有别名(详见博文),混在一块比较乱,就索性放在一起做了个整理,区别的时候要注意子序列与子串的不同,前者不要求连续,后者要求连续;由于大部分跟DP有关,而且一些题目还可以渐进寻求多种解法,可以用来做不错的练手。
下面是这些问题的博文目录
==========================
=1=最长公共子序列(LCS)==
=2=最长公共子串==
=3=最长重复子串==
=4=最长不重复子串==
=5=最长回文子串==
=6=最长递增子序列(LIS)==
=7=最大子数组和(连续子数组最大和)==
==========================
总结:
- 问题分类
- 前两个是关于两个字符串的问题、中间三个是关于单个字符串的问题,最后两个是数组相关的问题;不过不一定绝对,例如最长公共子序列也可以是数组问题;
- 从解决方案看,12属于“二维”DP问题,因为是两个对象间的问题;467属于“一维”DP问题,是单个对象的问题;345又是后缀数组的典型应用。
勘误:
- 本系列文章所有代码出现 char xx [256] 的地方改为 int xx [256] ,因为从逻辑上讲char xx[256] 是有可能出问题的。(感谢HFC)
本节相关代码可以到这里下载。
(全文完)