c - 如何找到每个大小为 n 的 m 个数组的最长公共子数组?
问题描述
我们有一个M 行的二维矩阵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次的哈希值
如果您对下面的评论有任何疑问,请长度
推荐阅读
- python - 如果信息不存在,如何从网站上抓取信息并跳到下一点
- python - 如何在 Keras/Python3 中完全从内存中删除对象或模型?
- android - 将 ImageButton 的默认背景设置为透明(使用 AndroidX)
- javascript - 在不使用 contextType 或设置默认上下文的情况下访问反应上下文
- python - 使用 tf.keras 功能 API 时如何在 tensorflow/keras 中使用 for 循环?
- python - 在python中为范围生成非质数
- matlab - 如何在 Mac 上运行 .mexw64 文件?
- symfony - 在 Symfony 中按“问题”类别显示用户表单
- vue.js - 是否可以使用 for 循环内部函数生成 vue 组件?
- laravel - 我想将原始查询转换为查询生成器