1 | 给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。 |
摩尔投票
大于三分之一的数是众数时,一个数组中最多有两个众数。
算法思想是设置两个候选人以及两个计数器。
- 遍历到和候选人相同时对应计数器+1
- 当计数器为0时,更换对应的候选人
- 如果和两个候选人都不相同则两个计数器都-1
遍历完剩下的则是2个众数。
最后要对两个候选人进行计数,判断是否大于1/3
1 | class Solution { |
参考文献
作者:clearboy 来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。