在数组中查找数字及其平方的算法

gil*_*lyb 15 arrays algorithm

我有一个整数数组,我需要一个O(n)算法来查找数组是否包含数字及其平方; 一对就足够了.

我试图自己做,但我只是设法找到O(n 2)的解决方案.

我想过使用计数排序,但内存使用量太大了.

Chr*_*s H 12

创建一个两倍于输入数组长度的新数组.O(2N)
复制O(N)中的所有数字
复制O(N)
基数排序中的数字的平方(我们可以因为它们都是整数)O(N)
迭代一次以查看是否有两个数字另一个O(N)
利润之后的同一个!O(1)

  • 如果原始数组中有重复项怎么办? (5认同)
  • 通过相同的论证,基数排序在有界整数上是O(N),快速排序是在系统上的O(1),其中SIZE_MAX(或等效物)提供问题大小的有限上限.如果你有一个真正庞大的输入由大量的重复组成,那么基数排序的O(N)非常有趣,但不是其他. (4认同)
  • 如果数组中的整数没有绑定,你如何进行基数排序? (3认同)