Leetcode: 229.求众数 II
229. 求众数 II

解题思路:
- 遍历计数法- 先遍历vector,用unordered_map记录下每个数出现的次数
- 逐个判断出现次数是否>nums.size()/3,符合则加入ans中
- 时间复杂度为O(n),空间复杂度为O(n)
 
- 摩尔投票法- 根据出现超过⌊ n/3 ⌋次的元素可以得出最多可能有2个这样的元素
- 让互不相同的三个元素互相抵消,最终会得到两个可能符合的元素
- 遍历计数,判断两个元素是否符合,符合则将其加入到ans中
- 时间复杂度为O(n),空间复杂度为O(1)
 
以下为C++代码:
| 1 | class Solution { | 
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 风之歌!
 评论



