如何在数组中查找最小数字

时间:2017-04-26 10:59:46

标签: arrays ruby

我需要返回数组中出现的最小数字(可能不止一个)。

given [1,1,2,3,3,4]
expected [1,1]

given [8,8,2,3]
expected [2]

4 个答案:

答案 0 :(得分:4)

另一种方式:

a = [1,1,2,3,3,4]

a.group_by(&:itself).min.last

答案 1 :(得分:3)

这个怎么样?

a = [1,1,2,3,3,4]
min = a.min
a.select { |i| i == min }
 => [ 1, 1]

答案 2 :(得分:1)

这是解决问题的一种方法:

  1. 找到最小的数字
  2. 计算出现的次数
  3. 使用解决方案生成数组,而不是在输入中选择元素
  4. 段:

    input = [1,1,2,3,3,4]
    highest = input.min
    [highest] * input.count(highest)
    

答案 3 :(得分:0)

此外,您可以使用take_while

sorted = a.sort
sorted.take_while { |e| e == sorted[0] }
=> [1, 1]

其他可能的方式:

a = [1, 1, 2, 3, 3, 4]
Array.new(*a.each_with_object(Hash.new(0)) {|e, acc| acc[e] += 1}.min.reverse)
=> [1, 1]