如何找到每个大小为 n 的 m 个数组的最长公共子数组?

问题描述

我们有一个 2D 矩阵 A 的 M 行,其中每一行都填充了从 1N (A[M][ N])

我们必须确定矩阵所有行中最长公共子数组的长度

示例:

A = {{1,2,3,4},{3,4,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
如果您对下面的评论有任何疑问