题目描述
给定 n 个正整数,找出它们中出现次数最多的数。
如果这样的数有多个,请输出其中最小的一个。
输入格式
输入的第一行只有一个正整数 n,表示数字的个数。
输入的第二行有 n 个整数 s1,s2,…,sn。
相邻的数用空格分隔。
输出格式
输出这 n 个次数中出现次数最多的数。
如果这样的数有多个,输出其中最小的一个。
数据范围
1≤n≤1000,
1≤si≤10000
样例
输入样例:
6
10 1 10 20 30 20
输出样例:
10
算法1
python 代码(list.count)
num = input()
list = list(map(int,input().split()))
res = 0
temp = 0
for i in list:
if list.count(i) > temp:
temp = list.count(i)
res = i
elif list.count(i) == temp:
res = min(res,i)
print(res)
算法2
python 代码(hash)
n = input()
list = list(map(int, input().split()))
hashtable = {}
for i,num in enumerate(list):
hashtable.setdefault(num,0)
if num in hashtable:
hashtable[num] += 1
max_value = max(hashtable.values())
maxvalue_list = []
for k in hashtable:
if max_value == hashtable[k]:
maxvalue_list.append(k)
print(min(maxvalue_list))