首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客850765491号
西安电子科技大学 C++
发布于广东
关注
已关注
取消关注
@牛客题解官:
数组中出现次数超过一半的数字
描述 这是一篇针对初学者的题解。共用三种方法解决。知识点:数组,排序,哈希难度:一星 题解 题目抽象:给定一个数组,找出数组中的众数,若有,返回众数,若没有,返回0众数定义:数组中出现次数大于数组一般的元素 方法一:哈希法 根据题目意思,显然可以先遍历一遍数组,在map中存每个元素出现的次数,然后再遍历一次数组,找出众数。 代码 class Solution {public: int MoreThanHalfNum_Solution(vector<int> numbers) { unordered_map<int,int> mp; for (const int val : numbers) ++mp[val]; for (const int val : numbers) { if (mp[val] > numbers.size() / 2 ) return val; } return 0; }};时间复杂度:O(n)空间复杂度:O(n) 方法二:排序法 可以先将数组排序,然后可能的众数肯定在数组中间,然后判断一下。 代码 class Solution {public: int MoreThanHalfNum_Solution(vector<int> numbers) { sort(numbers.begin(), numbers.end()); int cond = numbers[numbers.size() / 2]; int cnt = 0; for (const int k :numbers) { if (cond == k) ++cnt; } if (cnt > numbers.size() / 2) return cond; return 0; }};时间复杂度:O(nlongn)空间复杂度:O(1) 方法三:候选法(最优解) 加入数组中存在众数,那么众数一定大于数组的长度的一半。思想就是:如果两个数不相等,就消去这两个数,最坏情况下,每次消去一个众数和一个非众数,那么如果存在众数,最后留下的数肯定是众数。 具体做法: 初始化:候选人cond = -1, 候选人的投票次数cnt = 0 遍历数组,如果cnt=0, 表示没有候选人,则选取当前数为候选人,++cnt 否则,如果cnt > 0, 表示有候选人,如果当前数=cond,则++cnt,否则--cnt 直到数组遍历完毕,最后检查cond是否为众数 代码 class Solution {public: int MoreThanHalfNum_Solution(vector<int> numbers) { int cond = -1; int cnt = 0; for (int i=0; i<numbers.size(); ++i) { if (cnt == 0) { cond = numbers[i]; ++cnt; } else { if (cond == numbers[i]) ++cnt; else --cnt; } } cnt = 0; for (const int k :numbers) { if (cond == k) ++cnt; } if (cnt > numbers.size() / 2) return cond; return 0; }};时间复杂度:O(n)空间复杂度:O(1)
点赞 179
评论 20
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
07-30 12:11
门头沟学院 硬件开发
被华子追着杀啊
华子别追了,我害怕了,每天手机提示音一响我就知道你又来了
徐凤年555:
直接屏蔽了就行,真的太离谱了,感觉一万个hr
点赞
评论
收藏
分享
08-01 10:52
门头沟学院 Java
为什么秋招都问实习
看了很多面经,感觉八股基础题很少,都是在问场景题,拷打实习经历
点赞
评论
收藏
分享
06-25 09:33
厦门大学 Java
27届求拷打简历
是不是简历的问题啊,找个日常实习,小米,小红书,快手,米哈游秒挂,其他一直在泡着,投了一个多星期还是0面试
球球别拷打俺了:
现在日常估计没啥hc了,等到八月多估计就慢慢有了。双九✌🏻不用焦虑的
投递快手等公司10个岗位
点赞
评论
收藏
分享
06-06 16:41
武汉理工大学 嵌入式工程师
hr直接问我要pcb板子什么情况
啥意思
能干的三文鱼刷了10...:
公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞
评论
收藏
分享
07-29 16:41
上海大学 产品经理
实习结束,送mentor500的礼物贵吗?
都送什么礼物吗?如果送的话,价格大概都是多少?辛苦大家给个参考啦!
牛客73617529...:
要送就送那种没必要买又很贵的,假设一个打瓦的显示屏 鼠标 键盘都很贵,你送这些突出不了价值,直接送一个很贵的鼠标垫包记住你的。
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
百度提前批,三面被推迟一周,喜提秋招第一凉
9779
2
...
虾皮秋招一面
3324
3
...
他拿大厂SSP Offer打牌是什么概念啊?25届双非之光
3321
4
...
觉得研发高人一等的这辈子有了
2159
5
...
百度提前批 三面
1963
6
...
最强本科✌
1668
7
...
被猿辅导挂了简历,但我想说...
1419
8
...
也是逆天了
1369
9
...
虾皮一面凉经
1299
10
...
上班一周,工资还没拿,先欠公司两千
1263
创作者周榜
更多
正在热议
更多
#
工作中哪个瞬间让你想离职
#
64964次浏览
578人参与
#
找工作如何保持松弛感?
#
92058次浏览
1113人参与
#
中兴秋招
#
206644次浏览
2302人参与
#
如何快速融入团队?
#
18072次浏览
215人参与
#
秋招被确诊为……
#
165472次浏览
774人参与
#
和同事相处最忌讳的是__
#
25780次浏览
250人参与
#
投格力的你,拿到offer了吗?
#
87271次浏览
585人参与
#
虾皮求职进展汇总
#
250210次浏览
1875人参与
#
计算机专业还有必要去大厂卷吗
#
38641次浏览
183人参与
#
你最希望上岸的公司是?
#
135652次浏览
709人参与
#
26届的你,投了哪些公司?
#
48591次浏览
511人参与
#
Offer比较,你最看重什么?
#
194076次浏览
1315人参与
#
简历上的经历如何包装
#
31258次浏览
846人参与
#
我对___祛魅了
#
50950次浏览
458人参与
#
柠檬微趣工作体验
#
6845次浏览
40人参与
#
你遇到最难的面试题目是_
#
17243次浏览
205人参与
#
你跟室友的关系怎么样?
#
7841次浏览
121人参与
#
通信硬件岗投递时间线
#
18887次浏览
69人参与
#
我想象的实习vs现实的实习
#
290466次浏览
2246人参与
#
什么样的背景能拿SSP?
#
40587次浏览
233人参与
#
你最讨厌面试问你什么?
#
29444次浏览
322人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务