2012-01-01 14 views
11
a = { 
     1 => ["walmart", "walmart.com", 300.0], 
     2 => ["amazon", "amazon.com", 350.0], 
     ... 
    } 

配列内の浮動小数点値の最小値を持つ要素を見つけるにはどうすればよいですか?ハッシュ値の最小値を見つける

答えて

-4

以下の回答のmin_byソリューションを参照してください。コメントに指摘されているように、この質問に対する私の元々の答えは効率が悪かった。

+7

-1。 'O(N)'解が存在するとき、これは 'O(N log(N))'の一般的なアルゴリズムとは異なります。 –

25

min_byは、モジュールからの方法として利用できます。

ハッシュのすべての値の配列を取得し、各配列の最後の要素に基づいて最小値を選択します。

a.values.min_by(&:last) 
2

別の有用な方法は、同様列挙モジュールからsort_byあります。あなたのハッシュを昇順で並べ替えます。最小値を取得するには、firstと連鎖します。

a.sort_by { |key, value| value }.first 
関連する問題