我必须编写一个程序才能在两个数组之间找到相同的数字。问题是我必须以最优化的方式来尊重一些约束:
- 如果 A[i]=B[w] 和 A[j]=b[x] 并且 i 具有数组 A 的 i,j 索引和数组 B 的 w,x 索引
- 这些数字之间的最大距离必须为 k(由输入给出);
-我必须使用最大 O(k) 空间来实现一些优化搜索的东西;
- 数字在每个数组中仅出现一次(如集合)。
我正在考虑用第一个数组的 k 个元素构建一个平衡的 RBTree 以优化搜索过程,但我怀疑它需要的空间(我认为它不是 O(k),因为指针和颜色标记)。
有人对这个问题有更好的了解吗?
编辑:我将把我的例子放在这里更清楚:
- 阵列 A:3 7 5 9 10 15 16 1 6 2
- 阵列 B:4 8 5 13 1 17 2 11
- 常数 k = 6
- 输出:5 1 2
Edit2:在输出中,数字必须以与它们在数组中相同的顺序出现。