吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1360|回复: 4
收起左侧

[Python 转载] 【笔记】求众数

[复制链接]
chensure 发表于 2020-3-1 15:39

这是某谷上面的练习题,做完之后,发出来,希望得到大家指点
题目描述
    今天的数学课上,数学老师教了一个新的知识:众数。什么是众数?简单来说,就是一堆数字中出现次数最多的那个数字。显然,众数有时只有一个,有时不止一个~ 现在告知你N个整数(有正有负),请你输出这N个整数中的众数,如果众数不止一个,请输出最大的那个。
输入格式
    输入共二行。 第一行包含一个正整数N(0<N≤1000),即表示接下来将告知你N个整数,请你求出这N个整数中的众数。 第二行包含N个整数,所有整数都在-50~50范围内。
输出格式
    输出包含一个整数,即所求众数。若众数存在多个,请输出数值最大的那个。
基本思路
    输入列表-提取集合-集合和0组成字典-把字典所有value都提取成列表,输入最大-字典反查

输入样式
10-13 5 -1 -9 5 34 -13 5 7 5
输出样式
5
[Python] 纯文本查看 复制代码
def get_key(dict, value):
    '''
        作用:字典由value查key
        输入字典和value,输出符合条件的key,形成list
        参考https://blog.csdn.net/ssswill/article/details/86618553
    '''
    return [k for k, v in dict.items() if v == value]

def main():
    '''
        主函数
    :return:
    '''
    n = input()
    n_list = input().split()    #输入的数据变成列表
    n_set  = set(n_list)        #输入的数据变成集合(作用去重)
    n_set_len = len(n_set)      #输入集合的数量
    n_set_dict = dict(zip(n_set, [0] * n_set_len))  #集合跟0,变成字典
    #开始集合中的遍历计数

    for j in n_list:
        n_set_dict[j] += 1

    # 字典.values  输出字典所有value,并找到最大的值
    set_max = max(list(n_set_dict.values()))

    #字典反查,根据最大值,查询对应数字,返回最大值
    print(max(get_key(n_set_dict, set_max)))


if __name__ == '__main__':
    main()

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

└清涵ゞ徐来┘ 发表于 2020-3-1 16:10
你调用这么多函数不会卡你时间吗,为什么不用数组当个桶,最后for一遍就行了
 楼主| chensure 发表于 2020-3-1 16:54
└清涵ゞ徐来┘ 发表于 2020-3-1 16:10
你调用这么多函数不会卡你时间吗,为什么不用数组当个桶,最后for一遍就行了

不懂。。
不过我这么写,的确很耗时
entropy2333 发表于 2020-3-2 23:50
在leetcode上见过类似的,可以用投票算法

参考链接:https://blog.csdn.net/kimixuchen/article/details/52787307

[Python] 纯文本查看 复制代码
class Solution:
    def majorityElement(self, nums):
        count = 0
        candidate = None

        for num in nums:
            if count == 0:
                candidate = num
            count += (1 if num == candidate else -1)

        return candidate
 楼主| chensure 发表于 2020-3-3 09:54
entropy2333 发表于 2020-3-2 23:50
在leetcode上见过类似的,可以用投票算法

参考链接:https://blog.csdn.net/kimixuchen/article/details ...

谢谢。。。学习了。。。这个想法很好用
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-17 00:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表