具有线性内存使用的最长公共子序列

时间:2013-05-15 04:22:04

标签: algorithm computer-science proof

我正在尝试找到一种使用内存线性空间的算法:

在任意字母表中给出两个字符串x和y,确定它们最长的公共子序列。

1 个答案:

答案 0 :(得分:3)

请注意,当您在动态编程解决方案中计算表的下一行以解决LCS问题时,您只需要前一行和当前行。然后,您可以修改动态编程解决方案,以仅跟踪前一行和当前行而不是m x n表。每次到达当前行的末尾时,都会将上一行设置为当前行,并再次从该行的开头开始。这样做m次,其中m是表中的行数。这将使用列数中的空间线性。