我有两个充满双打的数组,第一个数组小于第二个数组,两个数组之间没有完全匹配,但我试图查看是否有一种方法可以显示两个数组中最接近的匹配位置。
答案 0 :(得分:0)
如果我理解正确,您想找到第一个索引,较小的数组恰好与较大的数组的子集完全匹配?例如: [2,3],[1、5、2、3、6] ==>索引2。
double big[N], small[M]; // M <= N
bool found = False;
... // initialize arrays..
for (int i = 0; i <= N; ++i){
int j = 0;
while (small[j] == big[i+j]){
j++;
if (j >= M){
found = True;
break;
}
else if (i+j >= N) return -1; //didn't find a solution.
}
if (found) return i;
}