【发布时间】:2010-12-08 02:31:13
【问题描述】:
我的一个朋友在一次采访中被问到这个问题 -
- 您已经给出了两个整数数组,每个数组的大小为 10。
- 两者都包含 9 个相等的元素(比如 1 到 9)
- 只有一个元素不同。
你将如何找到不同的元素?您可以采取哪些不同的方法?
一种简单但冗长的方法是 - 对两个数组进行排序,继续比较每个元素,进行错误比较,你会得到你的结果。
那么有什么不同的方法呢?在面试中指定逻辑作为其预期。不期望特定语言的特定代码。伪代码就足够了。
(请为每个答案提交一种方法)
我问这个问题的目的是,当数组很小的时候还可以。但是当数组大小增加时,你必须想一个非常有效的 n 更快的方法。在这种情况下使用比较是不可取的。
【问题讨论】:
-
所以我们必须返回不同元素的pair:一个来自第一个数组,一个来自第二个?
-
您确定问题不是“给定一个数组中的 10 个整数和另一个数组中的 9 个常见整数,您将如何找到唯一的整数?”这是一个更好的面试问题。
-
你已经很好地重新构建了这个问题。但我的问题仍然是一样的。
-
即使没有比较是不可能的,我们仍然可以想到最好的方法。
-
我添加了标签“算法”并删除了“数组”,因为它是“数据结构”的一个子集,也许“逻辑”也可以代替“数组”。但是这个问题可能更多是关于算法而不是数据结构(在我看来),所以至少算法人员应该有机会在赏金结束之前查看它。
标签: algorithm arrays data-structures logic