ruby - 在大列表中查找重复数字的最快方法

标签 ruby algorithm duplicates

我正在处理一个很大的 ID(长数据类型)列表(10^5 的顺序)。我必须在 ID 列表中找到重复项。但我只能使用 ruby​​。

在这里我找到了一种方法来做到这一点。 我将遍历列表并将 Id 放入哈希中,但在放入哈希之前,我将检查它是否已经在哈希中。

我不确定 RUBY 中散列的复杂性。

请给我一个更好的主意。

最佳答案

为什么不使用 Set

require 'set'

set = Set.new
numbers.each do |number|
  puts "Number #{number} is already in the set" unless set.add?(number)
end

或者简单地找到重复项:

require 'set'
set = Set.new
duplicates = numbers.reject { |number| set.add?(number) } 

关于ruby - 在大列表中查找重复数字的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19272662/

相关文章:

java - 在不改变元素顺序的情况下删除数组中的重复项

vba - 使用 VBA 删除重复项

ruby - 字符串包含 NUL 字节

ruby - 打印 string.length 时出错

java - 第 100 场比赛 - CanIWin()

Java 按距离排序

excel - 根据两个唯一的id合并行,并合并excel中的信息

ruby-on-rails - 工具提示截断

ruby - 创建哈希时为`Hash()`

algorithm - 如何生成给定集合的幂集?