python2.7
找出数组中出现次数最多的那个元素的值。如[1,2,3,4,5,6,2,2,2,2,27,8]结果为2
使用HashMap,每个Entry的key存放数组中的数字,value存放该数字出现的次数,首先遍历数组元素构造HashMap,然后遍历每个Entry,找出最大value对应的key,即是出现次数最多的那个数。此算法的时间复杂度为O(n)。
#coding:utf-8
def get_mostnumber(a):
#创建一个字典
number_dict = dict()
#将字典在空间扩展
for i in range(max(a)+1):
number_dict[str(i)] = 0
#开始匹配
for i in a:
number_dict[str(i)] += 1
#查找字典中最大的值
temp = 0
target_number = 0
#('key':'value','key':value......)
for key,value in number_dict.items():
if temp < value:
target_number = key
temp = value
return target_number
print('most number is:',get_mostnumber([1,2,3,1,1,1,1,4,13,3,5]))