摩尔投票法
class Solution {
public:
vector<int> majorityElement(vector<int>& nums) {
int a=0,b=0,ca=0,cb=0;
vector<int> ans;
for(auto& x:nums){
if(x==a) ++ca;
else if(x==b) ++cb;
else if(ca==0) ca=1,a=x;
else if(cb==0) cb=1,b=x;
else --ca,--cb;
}
ca=0,cb=0;
for(auto& x:nums){
if(x==a) ++ca;
else if(x==b) ++cb;
}
if(ca>nums.size()/3) ans.push_back(a);
if(cb>nums.size()/3) ans.push_back(b);
return ans;
}
};