题目链接:https://leetcode-cn.com/problems/majority-element-ii/description/
题目描述
给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。
说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1)。
示例
输入: [3,2,3]
输出: [3]
输入: [1,1,1,3,3,2,2,2]
输出: [1,2]
解决方法
由于时间及空间限制,所以本题只能采用摩尔投票法(基于169. 求众数);显然,超过 ⌊ n/3 ⌋ 次的元素最多有2个,因此在使用摩尔算法时,同时记录两个大多数,得到一个大多数,和一个出现次数仅次于大多数的数,最后检查它们出现的次数是否符合条件。
class Solution {
public:
vector<int> majorityElement(vector<int>& nums) {
//摩尔投票法得到两个大多数
vector<int> result;
int