我想理解这个“重复?”方法

时间:2016-10-07 20:16:14

标签: ruby algorithm

我似乎无法绕过这种方法。如果我试图理解这段代码,我会说这些项被迭代并索引两次,以便有两个单独的迭代迭代。如果两个索引集合相同,则返回true,如果两个项目集合相同。

def duplicates?(array1)
  array1.each_with_index do |item1, index1|
    array1.each_with_index do |item2, index2|
      next if index1 == index2
      return true if item1 == item2
    end
  end
  false
end

显然我错了,否则该方法总会返回true。我怎么弄错了?

1 个答案:

答案 0 :(得分:1)

算法是

for each element in array
  for each element in array
    skip if indices match
    return true if elements are the same 

return false

非常简单。