算法一 超级水王问题
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、扩展问题解决 - 选举投票统计
以上是关于算法一 超级水王问题的主要内容,如果未能解决你的问题,请参考以下文章