问题很容易解释:我们有两个大数组(32位整数值),我们必须找到给定数量的连续位置(n)之上的所有公共序列.
例如,如果n = 3,要比较的数组是:
a = [1, 3, 5, 7, 3, 2, 7, 4, 6, 7, 2, 1, 0, 4, 6]
b = [2, 5, 7, 3, 2, 3, 4, 5, 6, 3, 2, 7, 4, 6, 0]
Run Code Online (Sandbox Code Playgroud)
algoritmh应该返回两个数组:
r0 = [5, 7, 3, 2]
r1 = [3, 2, 7, 4, 6]
Run Code Online (Sandbox Code Playgroud)
(或者更好,它与第一个数组的相对位置和匹配的连续字节数).
我相信一个好的开始是最长公共子串算法,但也许任何人都知道一个算法更符合我的问题.