我最近在采访中被问到这个问题:
在排序数组中查找重复数字的最有效方法是什么?
我的答案是基于使用哈希表,其中键作为数组元素,数组中的重复次数作为值;迭代数组并更新哈希表。最后,可以检查哈希表中 count > 1 的元素;这些是重复的元素。
有更好的方法吗?
谢谢。
最佳答案
好吧,您可以使用 O(1)
的空间来完成此操作。由于它是一个已排序的数组,因此您所需要做的就是用下一个数字减去当前数字。如果结果是0
,那么您有一个重复的数字。
关于arrays - 有序数组中重复的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10793060/