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

标签 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。有什么建议吗?

最佳答案

您可以使用后缀数组和LCP 或后缀特里树来解决这个问题。查看本教程:http://wcipeg.com/wiki/Longest_common_substring

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

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

关于algorithm - 在数组中查找相同的值序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38270305/

相关文章:

php - 检测文章中的趋势 "reactions"(一个或多个)(如 Buzzfeed 等)

python - 求金字塔/三角形中相邻数字的最大和时输出错误

android - 如何通过特定关键字在 Android 中搜索 youtube 视频

c - 长整数中单个位的索引(在 C 中)

python - 没有过滤器的列表理解

ruby - 在数组中找到最接近给定值的数字

c++ - 如何在 "std::vector<char>"容器中查找单个单词

java - 优化一个简单的搜索算法

java - 计算循环运行的次数(大 O)

python - 计算相似向量的频率