我有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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句