首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Ruby:如何查找出现次数最多的数组中的项?

在 Ruby 中,要查找出现次数最多的数组中的项,可以使用 inject 方法结合一个哈希表来实现。以下是一个示例代码:

代码语言:ruby
复制
def most_frequent(array)
  counts = array.inject(Hash.new(0)) { |h, e| h[e] += 1; h }
  max_count = counts.values.max
  counts.select { |k, v| v == max_count }.keys
end

# 示例用法
array = [1, 2, 3, 2, 1, 3, 1, 1, 2, 3, 3, 3]
result = most_frequent(array)
puts "出现次数最多的项是:#{result.inspect}"

在这个示例中,我们首先使用 inject 方法遍历数组,并使用一个哈希表来记录每个元素出现的次数。然后,我们找到出现次数最多的项,并将其返回。

这个方法可以应用于任何类型的数组,包括字符串、数字、布尔值等。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

剑指 offer代码解析——面试题29数组中出线次数超过一半的数字

题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 分析:本题最直观的思路就是分别统计数组中每个数出现的次数,然后求出最大值,判断是否超过数组长度的一半。这种方法的时间复杂度为O(n^2),在面试中,第一反应想到的方法往往不是最佳答案,下面我们来寻求更加高效的方式。 一个数出现的次数如果超过数组长度的一半,那么可以得出以下结论: 1.如果把超过数组长度一半的数整理在一起形成数组b,那么不管把b放在数组的什么位置,数组的中位数一定在b中。 2.个数超过数组长度一半的数最多只有一个。

06
领券