如何在数组中找到两个差异最小的元素?

时间:2016-07-15 17:56:58

标签: ruby difference deviation

如何在数组中找到差异最小的两个元素?

换句话说,如何找到两个标准差最小的元素。

例如,如果我有一个像:

这样的数组
  

arr = [158,2,15,38,17,91]

结果将是15和17。

1 个答案:

答案 0 :(得分:7)

我假设问题是,"数组的两个元素是它们差异最小值的绝对值?"。

arr.combination(2).min_by { |a,b| (a-b).abs }
  #=> [15, 17] 

请参阅Array#combinationEnumerable#min_by