百度笔试第一题死活都是9%,测试用例都过了

#百度笔试   
首先需要找出其中出现次数最多的整数,如果出现次数最多的整数不唯一,则找出其中值最大的整数,记为M然后再找出其中出现次数最少的整数,如果出现次数最少的整数不唯一,则找出其中值最小的整数,记为N;最后计算MN的差,即输出(M-N)
n  = int(input()) # 输入n个数
nums = input()  # str
nums = nums.split(" ")
for i in range(n):
    nums[i] = int(nums[i])

record = {}
for i in range(n):
    if nums[i] in record:
        record[nums[i]] += 1
    else:
        record[nums[i]] = 1
cishu_max = max(record.values())
cishu_min = min(record.values())
result_max = float('-inf')
result_min = float('inf')
for index,value in record.items():
    if value == cishu_max:
        result_max = max(result_max,index)
    if value == cishu_min:
        result_min = min(result_min,index)

print((result_max - result_min))

我想知道为什么这道题,我死活都是9% ,测试用例什么都对了!
#百度笔试#
全部评论
我他妈的也是
1 回复 分享
发布于 2022-04-12 21:24
百分之9结果是input的问题 input.split() 括号里没有“ ”
1 回复 分享
发布于 2022-04-12 22:45
提供一种100%的解法吧,可参考~
1 回复 分享
发布于 2022-04-13 21:52
我用的字典统计次数,然后 sorted(dic.items(), key=lambda kv:(kv[1],kv[0])) 后得到的列表两端值再相减,过了45%
点赞 回复 分享
发布于 2022-04-12 22:35
日哦,刚刚上面那位说的是对的,split(" )只能分割一个字符,split()可以分割多个字符,他那sb可能是数字之间有多个空格分开
点赞 回复 分享
发布于 2022-04-13 08:41
这道如果用优先队列的话怎么样
点赞 回复 分享
发布于 2022-04-19 15:03

相关推荐

不愿透露姓名的神秘牛友
11-27 10:48
点赞 评论 收藏
分享
评论
1
2
分享
牛客网
牛客企业服务