在数组中查找相同的值序列
Find same sequences of values in arrays
我有 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。有什么建议吗?
你可以使用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
我有 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。有什么建议吗?
你可以使用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