【题目描述】

【求众数I】

【算法思路】

【方法一】

在不要求时间空间复杂度的情况下,可以采用的方法很多,最简单易懂的一种就是对nums中每个值统计一下数量,如果数量大于nums长度的一半,就直接返回。代码如下:

class Solution(object):def majorityElement(self, nums):for i in list(set(nums)):if nums.count(i)>len(nums)/2:return i
复制代码

【方法二】

摩尔投票法,是一种多数派想法

1.对于v[i],如果c此时为未知状态,则c=v[i],t=1,递增i。

2.如果c==v[i],++t,递增i。

3.如果c!=v[i],–t,如果t==0,将c置为未知状态,递增i。

4.所有投票处理完毕后,如果c为未知状态,则说明不存在任何候选人的得票数过半,否则重新遍历数组v,统计候选人c的实际得票总数,如果c的得票数确实过半,则c就是最终结果。

就是这个数在nums中出现次数过半,那么不管如何抵消,最终终会使c等于这个众数,t>=1。时间复杂度O(n),空间复杂度O(1),代码如下:

class Solution(object):def majorityElement(self, nums):m=cm=0for n in nums:if n==m:cm+=1elif cm==0:m=ncm=1else:cm-=1return m
复制代码

每日一道算法题--leetcode 169--求众数--python--两种方法相关推荐

  1. 每日一道算法题--leetcode 509--斐波那契数(动态规划)--python

    [题目描述] [代码思路] 自底向上的动态规划,避免了采用递归浪费空间以及重复计算. [源代码] class Solution(object):def fib(self, N):"" ...

  2. 每日一道算法题--leetcode 746--使用最小花费爬楼梯--python

    [题目描述] !!题干里的示例1需要仔细看一下哦,要到达顶层,即20那一层,可以跳过20这一层达到更高一层,也因此我们给cost数组最后加一个元素0,模拟最顶层的上一层无须花费力气. [代码思路] 最 ...

  3. 每日一道算法题--leetcode 179--最大数--python

    [题目描述] [代码思路] 第一反应是用冒泡排序,但是时间复杂度比较高,所以采用了python库函数简化代码.其实这道题就是要对比 int(str(nums[i])+str(nums[i+1])) 和 ...

  4. php算法在线刷题,c,算法_每日一道算法:leetcode 刷题碰到的问题。,c,算法 - phpStudy...

    每日一道算法:leetcode 刷题碰到的问题. 这是题目: Given an unsorted array nums, reorder it such that nums[0] < nums[ ...

  5. 用matlab计算稳态误差,利用Matlab求稳态误差的两种方法.

    利用Matlab求稳态误差的两种方法 摘要:稳态误差是系统控制精度或抗扰动能力的一种度量,它是稳态性能的一个重要指标.本文介绍利用Matlab的控制系统工具箱和Simulink工具箱求取系统误差稳态的 ...

  6. LeetCode 169. 求众数(摩尔投票)

    文章目录 1. 题目信息 2. 解题思路 3. 代码 3.1 排序 3.2 map计数 3.3 摩尔投票 1. 题目信息 给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ ...

  7. Leetcode:169. 求众数

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

  8. 每日一道算法题-寻找丑数

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 题目:我们把只包含因子2.3和5的数称 ...

  9. 怎么判断一个字符串的最长回文子串是否在头尾_每日一道算法题,让你的头脑更活跃(寻找最长回文子串)...

    前言 最近准备把算法慢慢的捡起来,所以准备日更一道算法题目,难度自然是由简入难,所以同学们可以每天都来看看小编的更新. 日更时间定在每晚20:00,希望大家多多关注啦. 昨天就欠更了,简直就是打脸.过 ...

最新文章

  1. dom元素滚动条高度 js_DOM 事件与事件委托
  2. java中如何取到一个对象的所有属性值,并且在创建一个相同的对象
  3. XtraGrid实现checkbox全选功能
  4. 计算机网络规范的应用,计算机网络技术及其应用
  5. 禅道 11.4.1 版本发布,主要优化细节
  6. DbEntry on Mono 测试
  7. iOS UINavigationBar-导航栏、UINavigationItem-导航项
  8. OPPO发布首款折叠旗舰Find N, 产品+服务高端化布局并行
  9. 万用表怎么测量电池容量_万用表如何测量电池容量?
  10. 实验报告三 密码破解技术
  11. 金蝶软件各版本安装包下载地址(即时更新)
  12. 一筐梨子一筐水果——协变性(covariant)
  13. 粗暴的rm rf,报错Argument list too long
  14. win10开机自动有线连接拨号上网
  15. 奋斗(2)第12集剧情介绍
  16. 移动端身份证识别,APP证件信息采集
  17. 保研/面试复习-数据结构与算法-万字总结(近三万字)
  18. sklearn入门——聚类算法KMeans
  19. 易语言如何调用大漠插件
  20. 7-2 长度质量计量单位换算 (5 分)

热门文章

  1. 【操作系统】线程的实现-思维导图
  2. 蓝桥杯 BASIC-20 基础练习 数的读法 问题
  3. python 修改pdf内容,如何使用python更改pdf内的超链接?
  4. java informix 实例
  5. linux 时区异常修正
  6. 深圳车联网云服务商“麦谷科技”获5000万Pre A轮融资
  7. docker volume源码分析
  8. php在客户端禁用cookie时让session不失效的解决方法
  9. bochs x86模拟器
  10. 利用veiw建立Centos5.5 双机智能DNS手册