算法一 超级水王问题

Posted 馥钰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法一 超级水王问题相关的知识,希望对你有一定的参考价值。

水王数:数组中超过一半的数字

超级水王问题:同时删除两个数(候选 + 血量),血量大于零再遍历一遍数组
思想:想法精妙,实现更精妙
https://www.bilibili.com/video/BV11v411G7xR?p=2

1、传统方式:O(N)复杂度+O(N)的空间复杂度。

遍历数组统计每个数出现的次数Map<数,出现次数>,遍历一遍map,取出现次数大于数组长度一半的数

2、超级水王算法O(N)

每次删除两个数,剩下的没被删除的数才有机会是水王数,需要变量一遍数组,验证留下来的数,是否是水王数!

两个变量:候选 + 血量。

1)算法规则

2)每次删除两个数

 3)变量一遍数组,验证留下来的数,是否是水王数

3、扩展问题解决 - 选举投票统计

以上是关于算法一 超级水王问题的主要内容,如果未能解决你的问题,请参考以下文章

左神讲算法——超级水王问题(详解)

2021-08-23:超级水王问题。扩展1:摩尔投票。扩展2:给定一个正数K,返回所有出现次数>N/K的数。

算法学习——递推之超级素数

找小水王

寻找小水王

递归--算法提高-超级玛丽