相关疑难解决方法(0)

在数组中查找两个重复数字的算法,无需排序

有一个大小为n的数组(数字介于0和n - 3之间),只重复2个数字.元素随机放置在数组中.

例如,在{2,3,6,1,5,4,0,3,5} n = 9,重复数为3和5.

找到重复数字的最佳方法是什么?

PS [你不应该使用排序]

algorithm search

26
推荐指数
7
解决办法
5万
查看次数

在列表中查找可能包含任意数量重复的重复数字的算法

请仔细阅读此问题,然后将其作为副本关闭,但如果它是一个诚实的副本,我将很高兴知道它.这是查找列表中多个可能的重复整数中的任何一个的概括.

给定任意一组小号Ñ不同的整数,任何阵列的长度N + 1,其中每个条目取自小号,什么是找到一些(必须有至少一个)重复条目的最佳算法

注意:A中可能有多个重复条目,任何条目都可以重复多次.

正如Nemo指出的那样,平凡的解决方案需要O(1)空间和O(N ^ 2)时间.我正在寻找一种能够在不影响空间的情况下缩短时间的解决方案.确切地说,我正在寻找的解决方案:

  • 返回A中出现的值a至少两次,
  • 最多使用O(log N)空间而不修改A,和
  • 小于O(N ^ 2)时间

编辑:集合S用于确保阵列A至少有一个重复的条目.对于这个问题,不要假设您已将S作为有序集给出.您可以查询小号(布尔返回trueS IN小号false其他),你可以查询一个(请致电A [1] ),但仅此而已.任何对AS进行排序解决方案都超出了空间限制.

这种推广使我对原始问题(具有O(1)空间和O(N)时间)的指针解决方案 …

algorithm search

12
推荐指数
1
解决办法
2299
查看次数

在常量空间和O(n)时间内查找重复条目的算法

给定N个整数的数组,使得只重复一个整数.在O(n)时间和常量空间中找到重复的整数.整数值或N的值没有范围

例如,给出一个由6个整数组成的数组,如23 45 67 87 23 47.答案是23(我希望这涵盖模糊和含糊的部分)

我在网上搜索但无法找到任何这样的问题,其中整数范围没有固定.还这里是,回答一个类似的问题,以矿一个例子,但在这里,他创建的哈希表C++中的最高整数值,但CPP不允许这样的64位的计算机上创建与2 ^ 64元件(阵列).

对不起,在数组不可变之前我没有提到它

c++ algorithm

7
推荐指数
2
解决办法
4865
查看次数

为什么我必须求和才能找到重复的数字?

问题:给出一系列从1到n-1的数字,其中一个数字只重复一次.(例如:1 2 3 3 4 5).你怎么能找到重复的数字?

通常,对这个问题的所谓"聪明"回答是将其总结并找出与预期总和的差异.但为什么不只是走过清单并检查之前的数字呢?两者都是O(n).我错过了什么吗?

algorithm

4
推荐指数
1
解决办法
742
查看次数

标签 统计

algorithm ×4

search ×2

c++ ×1