回答
考虑一个功能foo
每个元素映射到一个唯一的整数,而整数集从0
一定到n
。
然后,您可以声明大小为n
的布尔类型的数组arr
。
然后遍历您的元素数组,每个元素调用foo
以产生索引i
。您检查arr[i]
以查看它是否已设置为true
。如果它有,那么你没有一套独特的元素。如果arr
没有该元素,则设置arr[i] = true
。
这是O(N),但在存储方面很昂贵。
我不认为在O(n)中创建数组是可能的,是吗? –
这是对OS的调用,肯定不会比O(n)更差。 *初始化*它是O(n)。 – Bathsheba
- 创建一个空的字典
- 列表中的
- 每一个元素,如果该元素已经在字典,返回true
- 其他元素添加到字典
- 如果达到列表的末尾,返回false
我认为这是因为插入到字典中不是O(1)。你只是在复杂的道路上踢球。 – Bathsheba
为什么不呢? https://wiki.python.org/moin/TimeComplexity#dict –
Tbh我从来没有听说过字典的数据结构。但通过字典运行并检查所有与我正在比较的元素相同的元素不能在log(n)下完成,可以吗?所以我仍然需要n * log(n)。 –
- 1. 如果只有从1到n的元素,是否可以对O(n)中的数组进行排序?
- 2. C - 比较一个数组中的元素与以前的所有元素
- 3. 比较二维数组中的所有元素互相之间
- 4. MATLAB:比较三个数组中的所有元素
- 5. 比较C++中的数组元素
- 6. 比较两个数组中的元素
- 7. 获取数组元素的索引比O(n)更快
- 8. 比较数组中元素'N'两边元素的总和(尝试2)
- 9. 比较数组元素
- 10. 比较两个数组,两个数组之间是否有共同的元素?
- 11. 如何生成数组中所有n个元素的组合?
- 12. 如何比较两个数组的所有元素?
- 13. 确定是否所有元素的数组是素数
- 14. 如果数组有问题,可以在O(n)中排序
- 15. 特殊的minHeap,如何打印O(n)中的所有n个元素?
- 16. Clojure中是否有任何数据结构允许删除O(1)或O(log n)中的任意元素?
- 17. 比较数组中的元素并获取新元素
- 18. 将素数过滤代码-O(n^2)改为O(n)并删除数组中的冗余元素
- 19. 检查numpy数组中的所有元素是否匹配
- 20. O(N)查找,但O(日志(N))的比较排序列表
- 21. 有没有比O(n)更快的方式来检查未排序数组中的所有元素是否为0?
- 22. 检查Scala中的O(sqrt(n))是否为素数
- 23. 二维数组的元素是否可以在O(n)时间内处理某些输出?
- 24. 一个可以处理Java中N个元素的数组?
- 25. 如何删除numpy数组中所有numpy数组中的第n个元素?
- 26. 两个元组的所有元素(包括所有()功能)比较
- 27. 比较数组中的元素并回显其余数组
- 28. Ruby - 数组A是否包含数组B的所有元素
- 29. Python:比较两个数组的所有元素并修改第二个数组
- 30. System.Linq.Enumerable.Reverse是否将所有元素内部复制到数组中?
阵列中有什么?如果是整数,那么可能的范围是什么? – Bathsheba
是否允许额外的空间?好的。否则没有 – thebenman