【LeetCode 169】Majority Element
Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋
times.
You may assume that the array is non-empty and the majority element always exist in the array.
思路:
找到一个数组中出现次数超过一半的数。排序、哈希等方法就不提了,考虑O(n)的复杂度,有一种传说中的摩尔投票算法可用。其实也很简单,初始选第一个元素,依次比对它和其它的元素,若相等则其票数加一,反之则减一,当其票数为0时,更换投票对象为当前的元素,继续执行,最终即可得结果(前提的数组中存在这样的数,否则结果不确定是什么,依赖于元素的摆放顺序)。
C++:
1 class Solution { 2 public: 3 int majorityElement(vector<int> &num) { 4 5 int len = num.size(); 6 if(len == 0) 7 return 0; 8 9 int cnt = 0, ret = num[0]; 10 for(int i = 0; i < len; i++) 11 { 12 if(cnt == 0) 13 { 14 ret = num[i]; 15 cnt++; 16 } 17 else 18 { 19 if(num[i] == ret) 20 cnt++; 21 else 22 cnt--; 23 } 24 } 25 return ret; 26 } 27 };
Python:
1 class Solution: 2 # @param {integer[]} nums 3 # @return {integer} 4 def majorityElement(self, nums): 5 ret, cnt = 0, 0 6 7 for val in nums: 8 if cnt == 0: 9 ret = val 10 cnt = 1 11 else: 12 if ret == val: 13 cnt = cnt + 1 14 else: 15 cnt = cnt - 1 16 return ret 17
转载于:https://www.cnblogs.com/tjuloading/p/4614397.html
【LeetCode 169】Majority Element相关推荐
- 【LeetCode题解】二叉树的遍历
我准备开始一个新系列[LeetCode题解],用来记录刷题,顺便复习一下数据结构与算法. 1. 二叉树 二叉树(binary tree)是一种极为普遍的数据结构,树的每一个节点最多只有两个节点--左孩 ...
- 重复次数最多的 子串_每日算法系列【LeetCode 424】替换后的最长重复字符
题目描述 给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次.在执行上述操作后,找到包含重复字母的最长子串的长度. 示例1 输入: s = &quo ...
- 【LeetCode - 32】最长有效括号
给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度. 示例 1: 输入:s = "(()" 输出:2 解释:最长有效括号子串是 " ...
- 【leetcode】Majority Element
题目概述: Given an array of size n, find the majority element. The majority element is the element that ...
- 如何给柱状图柱子添加阴影_【LeetCode日记】84. 柱状图中最大的矩形
题目描述 ` 给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 . 求在该柱状图中,能够勾勒出来的矩形的最大面积. 以上是柱状图的示例,其中每个柱子的宽度为 1,给 ...
- 【LeetCode笔记】253. 会议室 II(Java、偏数学)
文章目录 题目描述 思路 && 代码 计划里 hot 100 + 剑指Offer 的题目中唯一一道会员题,同时也是最后一道没写的题,刚好今天 leetcode 发了一天会员可以写上-简 ...
- 【LeetCode笔记】301. 删除无效的括号(Java、DFS、字符串)
文章目录 题目描述 思路 && 代码 二刷 题目描述 [所有可能结果]-> [暴力DFS] 思路 && 代码 代码比较长,但是总体思路很清晰. 剪枝:舍弃左括号. ...
- 【LeetCode笔记】169. 多数元素(Java、摩尔投票法、哈希表)
文章目录 题目描述 思路 & 代码 思路一:哈希表 思路二: 摩尔投票法 题目描述 好家伙,这是今天最有意思的题目了 思路 & 代码 思路一:哈希表 先说缺点:空间复杂度O(n) 一次 ...
- 【LeetCode 总结】Leetcode 题型分类总结、索引与常用接口函数
文章目录 零. Java 常用接口函数 一. 动态规划 二. 链表 三. 哈希表 四. 滑动窗口 五. 字符串 六. DFS.BFS 七. 二分法 八. 二叉树 九. 偏数学.过目不忘 and 原地算 ...
最新文章
- python导入处理txt文件-python怎么处理txt
- 八皇后问题 回溯法hdu2553
- python(numpy,pandas6)——pandas数据形式的简介,排序方式sort_index,sort_values
- 孩子,你今天有没有提出一个好的问题?
- 16年微软/腾讯云/华为云MVP是怎样炼成的
- 这个年纪,喜欢你的肉体还会送你包的,原来是......
- mysql function 表名作为参数_mysql 常用的分组聚合函数
- 云栖专辑 | 阿里开发者们的第6个感悟:享受折磨 1
- linux 使用 vim 玩python
- 【Linux】五分钟搞定 Linux 文档全部知识,就看这篇文章
- 软件开发工作量/费用估算
- 苹果iphone手机如何隐藏文件夹名称 iphone隐藏文件夹标题方法图解
- 悉尼大学计算机专业本科学费,悉尼大学
- 中国计算机学会青年计算机科技论坛
- 左岸读书-语不惊人死不休(95)
- java角谷_java实现递归设计——数鸭子和角谷定理
- routeros php插件,RouterOS的Webfig的使用方法
- gitlab 完整部署实例
- WinCE 流驱动一步一步来(理论基础)
- 关闭单节点oracle,oracle rac 如何正确的删除单个节点的actionlist
热门文章
- python安装了怎么使用_Python PyCharm 安装与简单使用
- 串口服务器怎么测信号,串口服务器如何调试
- keras faster物体检测_URPC 2019水下目标检测竞赛冠军方案:多图像融合增强
- 快速云原生化,从数据中心到云原生的迁移实践
- 阿里云消息队列 RocketMQ 5.0 全新升级:消息、事件、流融合处理平台
- python如何去掉方括号_python从入门到实战外星人入侵
- css提取页面元素唯一性_一日一技:爬虫如何正确从网页中提取伪元素?
- 具有趣味性的c语言项目,一个有趣的小程序
- java利用poi读取excel_java利用POI 读取EXCEL
- python2.x和3.x为什么不兼容_Python中使用AES算法(解决Python2.x和3.x下运行不兼容问题)...