数组中出现次数超过一半的数字
AcWing52. 数组中出现次数超过一半的数字
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。
假设数组非空,并且一定存在满足条件的数字。
思考题:
- 假设要求只能使用
O(n)
的时间和额外O(1)
的空间,该怎么做呢?
数据范围
数组长度 [1,1000]
。
样例
1 |
|
算法思想
- 计数器(最受欢迎的选举人票数):
cnt
- 主元(最受欢迎的选举人):
val
- 核心思想:
新的选举人可以消耗最受欢迎的选举人的票
代码实现
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Phbeats-Blog!
评论