- 博客(4)
- 收藏
- 关注
原创 最长回文子串
简单来说,就是顺着和逆着读相同的子串;例如erabcba的最长回文串是abcba方法一: 动态转移方程:P[i][j]记录i—j是否为回文串(true false),P[i][j]=P[i-1][j-1](if a[i]==a[j]); 枚举子串的长度l,通过对每个字符开始l长的子串判断是否为回文串; 同时注意单个字符的回文串是;且若相邻两个字符相同,则这两个字符的回文串是2;以上两种情况要单
2015-07-07 15:08:28 280
原创 最长共公共子序列和最长公共子串
参考:http://www.cnblogs.com/zhangchaoyang/articles/2012070.html最长公共子序列最长公共子序列与最长公共子串的区别在于最长公共子序列不要求在原字符串中是连续的,比如ADE和ABCDE的最长公共子序列是ADE。我们用动态规划的方法来思考这个问题如是求解。首先要找到状态转移方程:符号约定,C1是S1的最右侧字符,C2是S2的最右侧字符,S1‘是从S
2015-07-07 11:39:35 481
原创 最长不降子序列
比如arr={1,5,8,2,3,4}的最长不降子序列是1,2,3,4 动态规划的思路:用P[i]去记录以i结尾的最长的不降子序列的长度,比如arr中,P[0]=1;P[1]=2;P[2]=3;P[3]=2;P[4]=3;P[5]=4; 那P是如何生成的:首先P数组初始化每个值都为1,因为每个数自身也算做长度为1的不降子序列;其次在算P[i+1]时要去找从0-i中哪些数比a[i+1
2015-07-07 11:01:38 379
原创 最大子序列和
参考:http://www.cnblogs.com/zhangchaoyang/articles/2012070.html最大子序列是要找出由数组成的一维数组中和最大的连续子序列。比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,达到最大;而 {5,-6,4,2}的最大子序列是{4,2},它的和是6。思路:用数组P[i]记以i结尾的子序列的和,max记当前子序列的最大和,e
2015-07-07 10:14:58 437
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人