我需要返回数组中出现的最小数字(可能不止一个)。
given [1,1,2,3,3,4]
expected [1,1]
given [8,8,2,3]
expected [2]
答案 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)
这是解决问题的一种方法:
段:
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]