题目

难度:★☆☆☆☆

类型:数学

给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。

你可以假设数组是非空的,并且给定的数组总是存在众数。

示例

示例 1:

输入: [3,2,3]

输出: 3

示例 2:

输入: [2,2,1,1,1,2,2]

输出: 2

解答

方案1:字典(哈希表)

为了找到出现次数最多的数,最简单的逻辑就是统计每次数字出现的次数,再拿取出其中出现次数最多的数字。该方法道理简单,但是内存开销较大。

class Solution(object):

def majorityElement(self, nums):

"""

:type nums: List[int]

:rtype: int

"""

count = {}

for num in nums: # 统计每个数字出现的次数

if num in count:

count[num] += 1

else:

count[num] = 1

return {v: k for k, v in count.items()}[max(count.values())] # 字典键值反转,找到出现次数最多的数字

方案2:数字统计

这道题目所求的众数的定义与常规概念不同的是,这里众数的出现次数要比数组中其他所有元素要多的,根据这个原理,我们将结果变量(res)初始化为数组第一个数,另外准备一个统计变量(count),当这个变量遇到和结果相同的数则加一,否则减一,减为零时更换结果变量为下一个数,由于众数出现次数多于其他字符,那么数组遍历结束后统计变量一定大于零,且此时结果变量中的数即为众数。

class Solution(object):

def majorityElement(self, nums):

"""

:type nums: List[int]

:rtype: int

"""

count, res = 0, nums[0] # 初始化计数器和结果

for i in range(len(nums)-1): # 遍历数组中每一个数

if nums[i] == res: # 如果当前的数和结果变量相同

count += 1 # 计数器+1

else: # 否则

count -= 1 # 计数器-1

if count == 0: # 如果减到了0

res = nums[i+1] # 那么更新结果变量为下一个数

return res # 返回结果

方案3:排序

这里众数的的出现次数超过其他元素,因此我们将数据进行排序后,最中间的数字一定是众数。

class Solution(object):

def majorityElement(self, nums):

"""

:type nums: List[int]

:rtype: int

"""

nums.sort()

return nums[len(nums) // 2]

如有疑问或建议,欢迎评论区留言~

python众数_169. 求众数(Python)相关推荐

  1. python求众数_python求众数问题实例

    本文实例讲述了python求众数问题的方法,是一个比较典型的应用.分享给大家供大家参考.具体如下: 问题描述: 多重集中重数最大的元素称为众数...就是一个可以有重复元素的集合,在这个集合中重复的次数 ...

  2. python写算法求最短路径,Python实现迪杰斯特拉算法并生成最短路径的示例代码

    def Dijkstra(network,s,d):#迪杰斯特拉算法算s-d的最短路径,并返回该路径和代价 print("Start Dijstra Path--") path=[ ...

  3. python求众数程序_python求众数问题实例

    本文实例讲述了python求众数问题的方法,是一个比较典型的应用.分享给大家供大家参考.具体如下: 问题描述: 多重集中重数最大的元素称为众数...就是一个可以有重复元素的集合,在这个集合中重复的次数 ...

  4. python平均数 中位数函数_R和python语言如何求平均值,中位数和众数

    均值是通过取数值的总和并除以数据序列中的值的数量来计算. R语言平均值公式: mean(x, trim = 0, na.rm = FALSE, ...) #x - 是输入向量.trim - 用于从排序 ...

  5. python求均值标准差不用numpy_【Python】不用numpy用纯python求极差、平均数、中位数、众数与方差,python的打印...

    python作为数据分析的利器,求极差.平均数.中位数.众数与方差是很常用的,然而,在python进行统计往往要使用外部的python库numpy,这个库不难装,然而,如果单纯只是求极差.平均数.中位 ...

  6. [转载] python下求语数总分和平均值_R和python语言如何求平均值,中位数和众数

    参考链接: 在Python中计算均值,中位数和众数 均值是通过取数值的总和并除以数据序列中的值的数量来计算. R语言平均值公式: mean(x, trim = 0, na.rm = FALSE, .. ...

  7. [转载] 【Python】不用numpy用纯python求极差、平均数、中位数、众数与方差,python的打印到控制台

    参考链接: 在没有库的Python中查找均值,中位数,众数 python作为数据分析的利器,求极差.平均数.中位数.众数与方差是很常用的,然而,在python进行统计往往要使用外部的python库nu ...

  8. 如何用Python求众数

    如何用Python求众数 在书里(参考文献[1])看到有这样的代码: max(set(A),key=A.count) 它可以返回列表A中的众数,现对其进行解释. set 博客 python set() ...

  9. python求众数代码_python-LeetCode-求众数

    题目:给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在众数. 示例 1: 输入: [3,2,3] 输出 ...

  10. python众数问题给定含有n个元素的多重集合s_分治法求众数 给定含有n个元素的多重集合S 联合开发网 - pudn.com...

    分治法求众数 所属分类:数据结构 开发工具:C/C++ 文件大小:240KB 下载次数:3 上传日期:2018-01-04 20:19:09 上 传 者:九鼎 说明:  给定含有n个元素的多重集合S, ...

最新文章

  1. dbus-glib-0.108 arm交叉编译
  2. Android之解决PC浏览器访问手机服务端取assets目录下的文件页面显示不出来问题
  3. java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View...错误原因和解决方法
  4. CentOS 7本地镜像部署NFS服务
  5. 利用Ninject实现依赖注入
  6. Android USB Camera(2) : UVC协议分析
  7. Linux超详细指令及其解析
  8. 单片机c语言*乘法,单片机c语言教程:运算符和表达式(位运算符)
  9. 力扣刷题 DAY_76 贪心
  10. 两个自我的对话和博弈
  11. 输入字符串判断有多少个字母,数字和其他
  12. 【DP】BZOJ2708 木偶
  13. 全球及中国动力电池行业研发方向与未来发展走势研究报告2022版
  14. MySQL导入mdx_一个简单的MDX案例及说明 (转)
  15. ajax异步获取数据后动态向表格中添加数据(行)
  16. Mac电脑的锁屏界面如何自定义锁屏消息?
  17. 收藏:软考知识点整理|信息系统工程监理与信息系统项目管理基础
  18. matlab火炮射击问题_15个快速射击前端面试问题
  19. 材料科学与计算机结合的研究方向,材料科学与工程专业的历史、现状及发展方向...
  20. 研发思维05----嵌入式智能产品外观设计之经典

热门文章

  1. 【script】python 调用阿里云解析 DNS API 实现 DDNS(动态域名解析)
  2. 两台电脑通过网线共享文件
  3. 获取iOS设备的UDID
  4. 室内定位导航地图制作问题
  5. 处理一些 Vue warn 和 sonar 扫描报错
  6. python绘制国内生产总值散点图_Python学习第90课-数据可视化之散点图绘制
  7. 【Python表白代码】“情话都是我抄来的,想说给你听是真的。”情人节快乐~
  8. 华为对刷量、刷评论的惩罚是什么?有什么解决办法吗?
  9. 字节跳动21届秋招工资单曝光
  10. 浪潮服务器bios设置 改硬盘接口,bios设置中更改硬盘接口模式为ide的方法