在数组中查找相同的值序列

时间:2016-07-08 15:24:13

标签: algorithm search pseudocode

我有N个不同数组的元素。我想知道是否有一个很好的算法来找到相同的值序列。

例如:

a= 1,2,3,4,5,6,7,8

b= 9,10,13,5,6,7,13,12

c= 20,36,24,11,2,3,5,6,7,9,11

结果,我希望所有三个数组都具有共同的序列5,6,7。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您可以使用Suffix Array和LCP或Suffix Trie来解决此问题。查看本教程:http://wcipeg.com/wiki/Longest_common_substring

它将在O(NLogN)时间内工作,其中N是所有序列长度的总和。

如果列表数量不大,那么您可以使用此处说明的动态编程解决方案:http://wcipeg.com/wiki/Longest_common_substring#Dynamic_programming_solution