class Solution:
def maxFrequencyElements(self, nums: List[int]) -> int:
ha_sh= {}
for i in nums:
ha_sh[i] = ha_sh.get(i, 0) + 1
max_freq=0
lst=[]
for i in ha_sh.items():
if i[1]>max_freq:
lst.clear()
max_freq=i[1]
lst.append(i[1])
elif i[1]==max_freq:
lst.append(i[1])
return sum(lst)
解释:
要统计每个元素出现的次数,最简单的方式就是哈希表.先统计每个元素出现的次数,再统计出现次数最多的元素的总频率.ha_sh[i] = ha_sh.get(i, 0) + 1
这里的hash.get()函数,是查询键对应的值,不存在就返回None,再加上一个参数0,就代表不存在时返回0.通过这一句,我们就可以很方便的一行代码解决键不存在的时候创建键值对并赋值为1,键存在的时候值直接加1.
随后再通过循环遍历哈希表的值.如果比当前的数频率高,就清空列表,并把自己加进去,如果和当前的频率一样,就直接加入到列表中,最后再返回列表的和,也就是出现频率最高的数的总频率