gpt4 book ai didi

arrays - 这种检查数组中重复项的方法是否相对有效?为什么或者为什么不?

转载 作者:可可西里 更新时间:2023-11-01 02:16:56 25 4
gpt4 key购买 nike

我只是想检查我的数组中是否包含任何重复项。我在 Google 上搜索并看到了一些方法:

  • 双for循环遍历数组并比较每一项
  • 创建一个字典来存储每个项目的出现次数

但是这些方法需要很多循环,我有点懒得为这个功能编写大量代码。 xD.

于是我想到了这种创造性的方式:

let containsDuplicates = Set(array).count != array.count

但是,这种方法比其他两种方法快还是慢?我不确定,因为它似乎创建了一个我认为需要循环遍历数组的集合。而且我不知道访问 count 是否也会遍历整个数组。

如果数组中最多只有 50 个项目,这还重要吗?

最佳答案

这几乎是最好的方法。字典存储是常数时间,每个项目只需要存储一次,所以它是一个 O(n) 解决方案,与 O(n^2) 相比for 循环方法。空间效率较低,但如今这通常不是问题。

如果您经常这样做,我建议您使用某种混合数据结构,这样您就不会不断地从头开始生成这些 Set

关于arrays - 这种检查数组中重复项的方法是否相对有效?为什么或者为什么不?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37140158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com