【发布时间】:2017-03-06 02:56:01
【问题描述】:
假设我下面有两个数组(长度相同),数组没有排序(随机):
a[] = {1, 3, 5, 7, 10, 11}
b[] = {1, 4, 5, 7, 9, 11}
我想知道在这两个数组之间找到所有不匹配(不同)值的最快方法是什么? (索引信息就足够了)。非常感谢您的宝贵时间。
【问题讨论】:
-
给定的值在数组中排序?
-
阵列可以有多大?我们对空间复杂度有限制吗?我们可以修改作为参数给出的原始数组吗?
-
如何定义“不匹配”。那些不匹配的元素是具有在另一个数组中不存在的值的元素,还是只是每个索引 i 处的元素,其中 a[i] != b[i]?
-
@sunkuet02 感谢您的回复。该数组由未排序的随机数组成。
-
天真的解决方案:搜索每个元素并在零初始化的临时数组中执行 temp[a[i]]++,然后再次执行 temp[b[i]]++。 temp 的 1 是你的元素