需要找出数组中出现频率最高的元素,我找了一下,可以像下面这种写法。
nums = [1, 2, 4, 3, 1, 4, 1, 1, 4]
num_hash = Hash[nums.uniq.map { |num| [num, nums.count(num)] }]
most_freq = nums.sort_by { |num| num_hash[num] }.last
# most_freq == 1
基本思想就是用一个 hash 先存好每个元素出现的次数然后再对原数组依据次数的高低排序,最后一个就是出现次数最高的元素。 我总觉得会有更好的解法,不知各位高手如何解的?