剑指offer:面试题39. 数组中出现次数超过一半的数字
题目:面试题39. 数组中出现次数超过一半的数字
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
示例 1:
输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]
输出: 2
限制:
1 <= 数组长度 <= 50000
解题:
class Solution {
public:int majorityElement(vector<int>& nums) {//方法1:排序后中间的元素一定是出现超过一半的数字sort(nums.begin(),nums.end());return nums[nums.size()/2];//方法2:哈希表unordered_map<int,int>mp;for(auto it : nums){mp[it]++;if(mp[it]>nums.size()/2) return it;}return 0;//方法3:超过一半的数字比其他所有数字的总和次数多int n=1;int result=nums[0];for(int i=1;i<nums.size();i++){if(n==0){result=nums[i];n=1;}else if(result==nums[i])n++;else n--;}return result;}
};
剑指offer:面试题39. 数组中出现次数超过一半的数字相关推荐
- 剑指offer面试题39. 数组中出现次数超过一半的数字(数组)(摩尔投票法)
题目描述 **数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. 你可以假设数组是非空的,并且给定的数组总是存在多数元素.** 思路 详见链接 代码 class Solution:def ...
- 剑指offer面试题[29]-数组中出现次数超过一半的数字
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...
- 【剑指Offer】28、数组中出现次数超过一半的数字
题目描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. 例如:输入如下所示的一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过 ...
- 【剑指offer-Java版】29数组中出现次数超过一半的数字
数组中出现次数超过一半的数字 两种思路: 思路一:由于出现次数超过一半,所以如果对这个数组进行划分之后无论如何,位于数组下标 n/2的数字就是出现次数超过一半的数 所以问题就转换为了求划分一次之后 位 ...
- 【LeetCode】剑指 Offer 39. 数组中出现次数超过一半的数字
[LeetCode]剑指 Offer 39. 数组中出现次数超过一半的数字 文章目录 [LeetCode]剑指 Offer 39. 数组中出现次数超过一半的数字 一.摩尔投票法 一.摩尔投票法 核心理 ...
- 剑指 Offer 39. 数组中出现次数超过一半的数字
剑指 Offer 39. 数组中出现次数超过一半的数字https://leetcode.cn/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban ...
- 剑指offer面试题[40]-数组中只出现一次的数字
题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 注意原题目要求空间复杂度为0(1). 位运算的具体思路可以参看剑指offer. class So ...
- 剑指Offer - 面试题3. 数组中重复的数字(哈希)
1. 题目 找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组 ...
- 剑指offer 面试题03. 数组中重复的数字
找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一个重 ...
最新文章
- Python字典部分源码分析,字典是无序的
- C++实现有哨兵的双向循环链表
- 【学习笔记】CO内部订单
- 要想保研成功!寒假就干这几件事~
- PHPUnit 3.4.10 在windows上配置
- Bugtags 2016-06-16 更新内容
- wpf+.net 4.5 surface2.0 = 异步多点触控 时间轴 part7
- 看板系统的表格动态数据显示
- Bootstrap 排版正文
- 集成灶带给我的是无尽烦恼,大家的集成灶用得如何?
- java中输出进程的映像名称,怎么修改tomcat进程的名称(windows)
- python+selenium+unittest测试框架3-项目构建和发送邮件
- 关于php print_r
- layui扩展第三方模块_Layui集成第三方插件nicescroll
- ESP32学习笔记(46)——MQTT客户端
- java教学视频平台系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
- Jetpack 全家桶之 App Startup 看完源码后真不是你们说的那样
- 笔记本电脑硬盘不见了_笔记本检测不到硬盘怎么办_电脑突然检测不到硬盘的解决方法-系统城...
- 机器学习,分类算法(饭店评价的例子)
- 人工智能“剧透”《权游》大结局,第一个“领便当”的居然是ta
热门文章
- Java进程和线程关系及区别
- react-navigation
- UESTC 1811 Hero Saving Princess
- 中国互联网的十一种盈利模式
- HDU1051Wooden Sticks
- mysql 事务 注意 优化_MySQL日常SQL优化注意事项
- python数据分析第七章实训3_《利用python进行数据分析》读书笔记--第七章 数据规整化:清理、转换、合并、重塑(二)...
- mysql统计出每个姓氏的人数_你见过什么偏僻的姓氏?明明是老虎的虎姓氏却读māo...
- php 结构体_PHP底层原理知其然知其所以然
- 集合处理后,按原先输入的字符串顺序排序