【发布时间】:2016-06-23 17:27:12
【问题描述】:
我知道如何在数组中查找重复元素,但最近在一个面试问题中,我被要求在不使用嵌套循环和递归的情况下以单遍含义查找数组中的重复元素。我试过但失败了。面试官连提示都没给我。所以我来这里问,是否可以在没有嵌套循环/递归的情况下找到数组中的重复元素?如果是,任何人都可以提供示例代码吗?也不允许使用库函数
P.S我也想知道如果我们不使用循环或递归会有什么影响。是否与复杂性有关?
【问题讨论】:
-
我们是否也应该使用 O(1) 额外的内存,或者我们没有这样的限制?
-
如果允许修改数组,则可以使用排序。
-
@blazs 您不能一次性对数组进行排序。
-
操作,对。好吧,在我看来,您应该向面试官询问详细信息。你能假设元素是整数吗?如果是,那么您可以使用计数排序进行排序。如果没有,那么您可以使用哈希表并有 O(n) expected 时间。等等等等。
-
我们不知道面试官到底问了你什么,但正如你的问题所述,这是不可能的。
标签: c arrays duplicates