加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何有效地提取Ruby数组中的重复元素?

发布时间:2020-12-16 21:24:17 所属栏目:百科 来源:网络整理
导读:参见英文答案 Ruby: How to find and return a duplicate value in array?18个 我有一个类似[1,1,2,4,6,3,3]的数组,我想得到重复元素的列表,在本例中为[1,3].我写了这个: my_array.select{|obj|my_array.count(obj)1}.uniq 但它的效率很低(o(n2)).你有更好
参见英文答案 > Ruby: How to find and return a duplicate value in array?18个
我有一个类似[1,1,2,4,6,3,3]的数组,我想得到重复元素的列表,在本例中为[1,3].我写了这个:
my_array.select{|obj|my_array.count(obj)>1}.uniq

但它的效率很低(o(n2)).你有更好的主意吗?如果可能简洁.

谢谢

解决方法

灵感来自Ilya Haykinson的回答:
def repeated(array)
  counts = Hash.new(0)
  array.each{|val|counts[val]+=1}
  counts.reject{|val,count|count==1}.keys
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读