摘要:最长公共子序列动态规划问题,局部最小单元两值是否相等,相等则从对角线上个位置处的数值,继续状态延续不相等则从上下两个过去的位置找值保持延续,在上下两个过去位置中保持着之前的最长子序列。
最长公共子序列
动态规划问题,局部最小单元:两值是否相等,相等则从对角线上个位置处的数值+1,继续状态延续; 不相等则从上下两个过去的位置找值保持延续,在上下两个过去位置中保持着之前的最长子序列。
3.对于状态的理解,保持最佳的,或者延续最佳的。
public class LongestCommonSubsequence {
public static int compute(char[] str1, char[] str2) {
int substringLength1 = str1.length;
int substringLength2 = str2.length;
int[][] opt = new int[substringLength1 + 1][substringLength2 + 1];
for (int i = substringLength1-1; i >= 0; i--) {
for (int j = substringLength2-1; j >= 0; j--) {
// System.out.println(i);
// System.out.println(j);
// System.out.println("-*- ");
if (str1[i] == str2[j]) {
opt[i][j] = opt[i + 1][j + 1] + 1;
} else {
opt[i][j] = Math.max(opt[i + 1][j], opt[i][j + 1]);
}
}
}
return opt[0][0];
}
public static int compute(String str1,String str2){
return compute(str1.toCharArray(),str2.toCharArray());
}
public static void main(String[] args){
String a1="abcd";
String a2="bcead";
int l1=compute(a1,a2);
System.out.println(l1);
}
}
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/72996.html
摘要:但不是和的最长公共子序列,而序列和也均为和的最长公共子序列,长度为,而和不存在长度大于等于的公共子序列。最长公共子序列给定序列和,从它们的所有公共子序列中选出长度最长的那一个或几个。为和的最长公共子序列长度。 最长公共子序列(Longest Common Subsequence LCS)是从给定的两个序列X和Y中取出尽可能多的一部分字符,按照它们在原序列排列的先后次序排列得到。LCS问...
摘要:最长公共子序列问题指的是求解两个序列和的长度最长的公共子序列。当然,可以看出,问题容易出现重叠子问题,这时候,就需要用动态规划法来解决。 问题介绍 给定一个序列$X=$,另一个序列$Z=$满足如下条件时称为X的子序列:存在一个严格递增的X的下标序列${i_1,i_2,...,i_k}$,对所有的$j=1,2,...,k$满足$x_{i_j}=z_j.$ 给定两个序列$X$和$Y$...
摘要:最长公共子序列问题指的是求解两个序列和的长度最长的公共子序列。当然,可以看出,问题容易出现重叠子问题,这时候,就需要用动态规划法来解决。 问题介绍 给定一个序列$X=$,另一个序列$Z=$满足如下条件时称为X的子序列:存在一个严格递增的X的下标序列${i_1,i_2,...,i_k}$,对所有的$j=1,2,...,k$满足$x_{i_j}=z_j.$ 给定两个序列$X$和$Y$...
摘要:若且,则是和的最长公共子序列若且,则是和的最长公共子序列。递归结构容易看到最长公共子序列问题具有子问题重叠性质。例如,在计算和的最长公共子序列时,可能要计算出和及和的最长公共子序列。 虽是读书笔记,但是如转载请注明出处 http://segmentfault.com/blog/exploring/ .. 拒绝伸手复制党 本章讲解: 1. LCS(最长公共子序列)O(n^2)的时间复杂...
摘要:遇到问题查查,看看,大神的讲解问问岛胖君下面是我最近整理出来的关于字符串的文章的怎么翻译汇集目录非常希望强化博客的功能,比如分类,置顶。 虽是读书笔记,但是如转载请注明出处 http://segmentfault.com/blog/exploring/ .. 拒绝伸手复制党 最近在看算法和语言,基本属于看知识 --> java实现 --> 整理blog 这个路线。 遇到问题查查st...
阅读 647·2019-08-29 12:44
阅读 3215·2019-08-26 17:49
阅读 2799·2019-08-26 13:40
阅读 1370·2019-08-26 13:39
阅读 3901·2019-08-26 11:59
阅读 2003·2019-08-26 10:59
阅读 2737·2019-08-23 18:33
阅读 2860·2019-08-23 18:30