【发布时间】:2015-11-10 13:22:22
【问题描述】:
我有一个包含 100 万个对象的数组,它包含 1 个重复项?识别重复项并将其删除的最有效方法是什么?
【问题讨论】:
-
数组排序了吗?
标签: arrays
我有一个包含 100 万个对象的数组,它包含 1 个重复项?识别重复项并将其删除的最有效方法是什么?
【问题讨论】:
标签: arrays
如果是排序的,就从左到右,直到找到一行中的两个
平均复杂度:O(n/2)
最差复杂度:O(n)
如果它没有排序并且你有足够的内存,创建hashmap,将对象存储为键,当你按下一个键两次时,它是重复的。
平均复杂度:O(n/2)
最差复杂度:O(n)
如果它没有排序并且您没有足够的内存,请使用快速排序对其进行排序,然后使用方法 no。 1
平均复杂度:O(n*log n)
最差复杂度:O(n^2)
【讨论】: