回答
考慮一個功能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