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

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

【问题讨论】:

标签: arrays


【解决方案1】:
  1. 如果是排序的,就从左到右,直到找到一行中的两个

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

    最差复杂度:O(n)

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

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

    最差复杂度:O(n)

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

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

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

【讨论】:

    猜你喜欢
    • 2018-04-02
    • 1970-01-01
    • 2010-11-05
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多