题目:面试题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. 数组中出现次数超过一半的数字相关推荐

  1. 剑指offer面试题39. 数组中出现次数超过一半的数字(数组)(摩尔投票法)

    题目描述 **数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. 你可以假设数组是非空的,并且给定的数组总是存在多数元素.** 思路 详见链接 代码 class Solution:def ...

  2. 剑指offer面试题[29]-数组中出现次数超过一半的数字

    题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...

  3. 【剑指Offer】28、数组中出现次数超过一半的数字

      题目描述:   数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.   例如:输入如下所示的一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过 ...

  4. 【剑指offer-Java版】29数组中出现次数超过一半的数字

    数组中出现次数超过一半的数字 两种思路: 思路一:由于出现次数超过一半,所以如果对这个数组进行划分之后无论如何,位于数组下标 n/2的数字就是出现次数超过一半的数 所以问题就转换为了求划分一次之后 位 ...

  5. 【LeetCode】剑指 Offer 39. 数组中出现次数超过一半的数字

    [LeetCode]剑指 Offer 39. 数组中出现次数超过一半的数字 文章目录 [LeetCode]剑指 Offer 39. 数组中出现次数超过一半的数字 一.摩尔投票法 一.摩尔投票法 核心理 ...

  6. 剑指 Offer 39. 数组中出现次数超过一半的数字

    剑指 Offer 39. 数组中出现次数超过一半的数字https://leetcode.cn/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban ...

  7. 剑指offer面试题[40]-数组中只出现一次的数字

    题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 注意原题目要求空间复杂度为0(1). 位运算的具体思路可以参看剑指offer. class So ...

  8. 剑指Offer - 面试题3. 数组中重复的数字(哈希)

    1. 题目 找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组 ...

  9. 剑指offer 面试题03. 数组中重复的数字

    找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一个重 ...

最新文章

  1. Python字典部分源码分析,字典是无序的
  2. C++实现有哨兵的双向循环链表
  3. 【学习笔记】CO内部订单
  4. 要想保研成功!寒假就干这几件事~
  5. PHPUnit 3.4.10 在windows上配置
  6. Bugtags 2016-06-16 更新内容
  7. wpf+.net 4.5 surface2.0 = 异步多点触控 时间轴 part7
  8. 看板系统的表格动态数据显示
  9. Bootstrap 排版正文
  10. 集成灶带给我的是无尽烦恼,大家的集成灶用得如何?
  11. java中输出进程的映像名称,怎么修改tomcat进程的名称(windows)
  12. python+selenium+unittest测试框架3-项目构建和发送邮件
  13. 关于php print_r
  14. layui扩展第三方模块_Layui集成第三方插件nicescroll
  15. ESP32学习笔记(46)——MQTT客户端
  16. java教学视频平台系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  17. Jetpack 全家桶之 App Startup 看完源码后真不是你们说的那样
  18. 笔记本电脑硬盘不见了_笔记本检测不到硬盘怎么办_电脑突然检测不到硬盘的解决方法-系统城...
  19. 机器学习,分类算法(饭店评价的例子)
  20. 人工智能“剧透”《权游》大结局,第一个“领便当”的居然是ta

热门文章

  1. Java进程和线程关系及区别
  2. react-navigation
  3. UESTC 1811 Hero Saving Princess
  4. 中国互联网的十一种盈利模式
  5. HDU1051Wooden Sticks
  6. mysql 事务 注意 优化_MySQL日常SQL优化注意事项
  7. python数据分析第七章实训3_《利用python进行数据分析》读书笔记--第七章 数据规整化:清理、转换、合并、重塑(二)...
  8. mysql统计出每个姓氏的人数_你见过什么偏僻的姓氏?明明是老虎的虎姓氏却读māo...
  9. php 结构体_PHP底层原理知其然知其所以然
  10. 集合处理后,按原先输入的字符串顺序排序