识别和删除数组中重复项的最有效方法是啥?

Posted

技术标签:

【中文标题】识别和删除数组中重复项的最有效方法是啥?【英文标题】:What is the most efficient way to identify and remove the duplicate in an array?识别和删除数组中重复项的最有效方法是什么? 【发布时间】:2015-11-10 13:22:22 【问题描述】:

我有一个包含 100 万个对象的数组,它包含 1 个重复项?识别重复项并将其删除的最有效方法是什么?

【问题讨论】:

数组排序了吗? Finding out the duplicate element in an array的可能重复 【参考方案1】:

    如果是排序的,就从左到右,直到找到一行中的两个

    平均复杂度:O(n/2)

    最差复杂度:O(n)

    如果它没有排序并且你有足够的内存,创建hashmap,将对象存储为键,当你按下一个键两次时,它是重复的。

    平均复杂度:O(n/2)

    最差复杂度:O(n)

    如果它没有排序并且您没有足够的内存,请使用快速排序对其进行排序,然后使用方法 no。 1

    平均复杂度:O(n*log n)

    最差复杂度:O(n^2)

【讨论】:

以上是关于识别和删除数组中重复项的最有效方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

通过聚合在pandas组中查找频繁项的最有效方法是啥[重复]

创建初始重复数据的二维字符串数组的最有效方法是啥?

从多维数组中删除数组的最有效方法[重复]

从 JavaScript 中的关联数组中获取第一项的最有效方法是啥?

在 C# List 中查找重复项索引的最优雅方法是啥

检查一组集合中的重复项的更有效方法是啥