arrays - 有序数组中重复的数字

标签 arrays algorithm sorting hashtable

我最近在采访中被问到这个问题:

在排序数组中查找重复数字的最有效方法是什么?

我的答案是基于使用哈希表,其中键作为数组元素,数组中的重复次数作为值;迭代数组并更新哈希表。最后,可以检查哈希表中 count > 1 的元素;这些是重复的元素。

有更好的方法吗?

谢谢。

最佳答案

好吧,您可以使用 O(1) 的空间来完成此操作。由于它是一个已排序的数组,因此您所需要做的就是用下一个数字减去当前数字。如果结果是0,那么您有一个重复的数字。

关于arrays - 有序数组中重复的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10793060/

相关文章:

arrays - 索引处的增量元素

ruby - 在 Ruby 中对哈希数组进行排序

algorithm - 包含一条边并在有边的树中生成权重最小的生成树

c# - 将数组中的元素右移 n

algorithm - 每个数字的互质数

python - 高效的一维数组比较、缩放和求和

java - 查找交替排序数组的 2 个相邻数组元素的可能组合

c++ - 指针、数组和结构(以及分配内存)?

c++ - 在 C++ 中使用字符指针从字符数组中读取字节

c - 归并排序的应用