如何找到每个大小为 n 的 m 个数组的最长公共子数组?
How to find the Longest Common Subarray of m arrays each of size n?
我们有一个 M 行的 2D 矩阵 A,其中每一行都填充了从 1 到 N (A[M][N])
我们必须确定矩阵所有行中最长公共子数组的长度
示例:
A = {{1,2,3,4},{3,4,1,2},{3,1,2,4}}
Longest common Subarray {1,2}
Length of LCS = 2
Output = 2
我不需要代码只是一个优化建议。
1)遍历每个数组,设第i个数组为A[i]
2)遍历A[i]
的每个子数组,计算它们的散列,并将它们与子数组的
长度一起放入map<pair<hashType, int>, int>
,计算散列出现的次数
3)找到最大长度出现n次的hash
如果您对下面的评论有任何疑问
我们有一个 M 行的 2D 矩阵 A,其中每一行都填充了从 1 到 N (A[M][N])
我们必须确定矩阵所有行中最长公共子数组的长度
示例:
A = {{1,2,3,4},{3,4,1,2},{3,1,2,4}}
Longest common Subarray {1,2}
Length of LCS = 2
Output = 2
我不需要代码只是一个优化建议。
1)遍历每个数组,设第i个数组为A[i]
2)遍历A[i]
的每个子数组,计算它们的散列,并将它们与子数组的
长度一起放入map<pair<hashType, int>, int>
,计算散列出现的次数
3)找到最大长度出现n次的hash
如果您对下面的评论有任何疑问