首页 > 解决方案 > 如何找到每个大小为 n 的 m 个数组的最长公共子数组?

问题描述

我们有一个M 行的二维矩阵A,其中每一行都填充了从1N (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

我不需要代码只是优化建议。

标签: calgorithmdata-structuresarray-algorithms

解决方案


1)遍历每个数组,设第i个数组为A[i]
2)遍历每个子数组,A[i]计算它们的哈希值,并将它们与子数组的
长度一起map<pair<hashType, int>, int>计算哈希值出现的次数
3)找到最大出现n次的哈希值
如果您对下面的评论有任何疑问,请长度


推荐阅读