gpt4 book ai didi

arrays - ruby:找到数组中出现次数最多的项目,如果有的话

转载 作者:太空宇宙 更新时间:2023-11-03 17:43:39 26 4
gpt4 key购买 nike

使用这段代码,我可以找到数组中出现次数最多的项:

letters.max_by { |i| letters.count(i) } 

但这将为

返回 2
a = [1, 2, 2, 3, 3]

尽管 3 出现了相同的情况。我怎样才能知道是否确实存在出现次数最多 的项目?如果没有单个冠军,我想得到 false

最佳答案

这很丑陋,需要改进,但是:

def champion(array)
grouped = array.group_by(&:itself).values.group_by(&:length)

best = grouped[grouped.keys.max]

if (best.length == 1)
best[0][0]
else
false
end
end

我不确定是否有简单的单次解决方案,至少不是 O(n^2) 或更糟的解决方案,这是不寻常的。

关于arrays - ruby:找到数组中出现次数最多的项目,如果有的话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47019376/

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