回答
考慮一個功能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. MATLAB:比較三個數組中的所有元素
- 4. 比較二維數組中的所有元素互相之間
- 5. 如何比較節點數組中是否存在HTML元素?
- 6. 比較數組的元素
- 7. 比較數組中的元素
- 8. C++比較數組中的列元素
- 9. 比較數組列表中的元素
- 10. 比較兩個數組中的元素
- 11. MATLAB:比較數組中的元素
- 12. 比較C++中的數組元素
- 13. 比較C++中數組的元素
- 14. 獲取數組元素的索引比O(n)更快
- 15. 比較數組中元素'N'兩邊元素的總和(嘗試2)
- 16. 比較數組一個元素在同一陣列中所有其他元素
- 17. 查找每個數組元素,左邊較小的元素。 O(n)
- 18. 如何比較數組中的元素與SList中的元素?
- 19. 可以比較System.Collection.Arraylist中的元素以查看是否有任何元素相同?
- 20. 在Erlang中比較數組元素
- 21. MongoDB中找到比較數組元素
- 22. 比較數組元素
- 23. PHP數組元素比較
- 24. 比較兩個數組,兩個數組之間是否有共同的元素?
- 25. 比較O((logn)!)和O(2^n)
- 26. 如何生成數組中所有n個元素的組合?
- 27. 確定是否所有元素的數組是素數
- 28. 如何比較兩個數組的所有元素?
- 29. 如果數組有問題,可以在O(n)中排序
- 30. 描述O(n log n)算法以確定A的所有元素是否不同
陣列中有什麼?如果是整數,那麼可能的範圍是什麼? – Bathsheba
是否允許額外的空間?好的。否則沒有 – thebenman