欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CCF 201312-1 出现次数最多的数 python 满分

程序员文章站 2022-05-19 13:13:31
...

最近要过CCF(先把历年第一题第二题刷完),决定用python。看网上满分python代码良莠不齐,特将自己笔记分享(如果有看不懂的地方,请在下面留言,本着能帮着帮的原则进行援助,O(∩_∩)O哈哈~)。分享笔记有如下理由:一来方便自己以后查阅,二来给和我一样苦难的同胞一点点思路,三来如有热心网友可以帮忙优化,最后为后面大神分享代码或思路抛砖引玉。刚开始第一篇,废话多一点,后面保证无废话。

题目叙述

问题描述:略

输入格式:略

输出格式:略

样例输入

6
10 1 10 20 30 20

样例输出

10

满分证明

CCF 201312-1 出现次数最多的数 python 满分

解题思路

  1. map函数返回一个迭代器,用list取出;
  2. 可以字典,使用dict.setdefault()函数;
  3. 注意次数相等取最小。

代码

满分代码一

num = input()
L = list(map(int, input().split()))
num = 0
res = 0
for i in L:
    if L.count(i) > num:
        num = L.count(i)
        res = i
    elif L.count(i) == num:
        res = min(res, i)
print(res)

满分代码二

n = int(input())
list = list(map(int,input().split(" "))) #字符串数组转数字数组
dict = {}
for k in list:
    dict.setdefault(k,0)#如果键不存在于字典中,将会添加键并将值设为default
    dict[k] = dict[k]+1
max = max(dict.values())#dict.values()返回所有value的数组
maxkeylist = []
for k in dict:
    if max == dict[k]:
        maxkeylist.append(k)#记录所有出现次数最多的key
print(min(maxkeylist))#打印数字最小的
相关标签: CCF python python