题目
试题编号: | 201312-1 |
试题名称: | 出现次数最多的数 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述
给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。
输入格式
输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。
输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。
输出格式
输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。
样例输入
6
10 1 10 20 30 20
样例输出
10
程序代码
# 输入数字个数
n = int(input())
# 创建计数数组并且赋值
countList = []
for i in range(10000):
countList.append(0)
# 输入一行数字
numberList = input().split()
# 利用循环转换数字类型并统计次数
for i in range(n):
numberList[i] = int(numberList[i])
countList[numberList[i] - 1] += 1
# 数字(索引)_次数标记
number_count = [0,1]
# 倒序寻找次数最多的数字(因为相同次数输出最小数字)
for i in range(10000):
# 当前数字的出现数次更大时 更新数字和计数
if number_count[1] <= countList[-1 - i]:
number_count[1] = countList[-1 - i]
number_count[0] = 10000 - i #因为倒序
# 输出出现次数最多的数字
print(number_count[0])