Я думаю, что это не очень хорошая идея - использовать что-то, что вы найдете в Google, и настраивать его до тех пор, пока оно не будет работать Если мы разрабатываем программное обеспечение, мы должны делать то, что понимаем.
Хэш оптимизирован для поиска значения по ключу. Он не оптимизирован для сортировки значений или поиска по свойствам значений. Таким образом, структура данных не помогает вашей проблеме. Другие структуры данных, такие как деревья или даже массивы, могут быть лучше.
Но если вы хотите использовать хеш по каким-то другим причинам, конечно, это возможно. Каким-то образом вам просто нужно перебрать весь хеш.
Алгоритм довольно прост: переберите весь хеш и проверьте, больше ли значение и предыдущее наибольшее значение:
max_value = 0 # or -Infinity if you have negative values
key_for_max_value = nil
hash.each_pair do | key, value |
if value > max_value
max_value = value
key_for_max_value = key
end
end
puts "The largest value is #{max_value} and it is has the key #{key_for_max_value}"
В некоторых других решениях используются такие приемы, как сортировка массива, но это только скрывает сложность.