我的一位朋友在接受采访时被问到这个问题——
- 您已给出两个整数数组,每个数组的大小为 10。
- 两者都包含 9 个相等的元素(比如 1 到 9)
- 只有一个元素不同。
你将如何找到不同的元素?您可以采取哪些不同的方法?
一种简单但冗长的方法是 - 对两个数组进行排序,继续比较每个元素,如果比较错误,您将得到结果。
那么对此有哪些不同的方法呢?指定面试中预期的逻辑。不期望使用特定语言的特定代码。伪代码就足够了。
(请为每个答案提交一种方法)
我问这个问题的目的是,当数组大小很小时,这是可以的。但是当数组大小增加时,你必须想到一种非常有效且更快的方法。在这种情况下,永远不要使用比较。
如果您需要扩展它,那么我将使用世界上众多 Set 实现之一。例如Java的HashSet。
抛出 Set 中第一个数组的所有内容。然后,对于第二个数组的每个成员,如果它包含在Set中,则将其移除;否则将其标记为“唯一#2”。在此过程之后,集合中最后剩下的成员是唯一的#1。
我可能会这样做,即使是在面试中,甚至对于简单的十元素数组。生命太短暂了,没有必要花时间去寻找聪明的方法来翻越一堵墙,而墙上有一扇完美的门。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)