CCF&Python 2013-12-1出现次数最多的数

CCF&Python 2013-12-1出现次数最多的数

原题目

在这里插入图片描述

思路


对python自带函数熟悉的话,会知道list有count函数用来统计次数,再配合list转换为set再转换为list,可以去重,这样是一条思路。或者直接声明长为一万零一的数组,对出现次数进行统计,这是第二条思路。

思路一

熟悉一下知识点:

  1. set(list) 可以去重
  2. list.count()可以统计List中元素出现的次数
  3. map(函数,调用数据)的用法
  4. set(list,list)返回元组
  5. max()里可以加一个key

所以我们可以利用这些内置函数,精简的写出代码,如下:

N=int(input())#获得个数
num_list=list(map(int,input().split()))#获得数据,用列表储存

#利用set去重
re_num_list=list(set(num_list))
#利用list(map())获得出现个数的列表,利用zip返回为元祖,利用dict转换为字典
num_dict=dict(zip(re_num_list,list(map(num_list.count,re_num_list))))
#利用字典找出最大的值对应的键
print(max(num_dict,key=num_dict.get))

思路二

测试用例最大的数不过是10000,干脆创建一个足够大的数组来记录每个数出现的次数,干脆利索

N=int(input())#获得个数
num_list=map(int,input().split())#获得数据列表
times=[0]*10001#声明一个足够大的统计出现次数的数组
max=0#记录最大出现次数
result=0#记录结果

#统计次数
for  i in num_list:
    times[i]=times[i]+1

#寻找出现次数最大的数
for i in range(10000):
    if times[i]>max:
        max=times[i]
        result=i
#输出
print(result)

总结教训

python内置的函数都很好用,掌握每一个都很简单,但是交叉使用时还是会有各种不清晰,不明朗。
纸上得来终觉浅呀,题目虽然简单,但是却是对知识点掌握情况的检查。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值