229. 求众数 II摩尔投票法的扩展
Posted 幽殇默
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了229. 求众数 II摩尔投票法的扩展相关的知识,希望对你有一定的参考价值。
https://leetcode-cn.com/problems/majority-element-ii/
class Solution {
public:
vector<int> majorityElement(vector<int>& nums)
{
int r1,r2,c1=0,c2=0;
for(int i=0;i<nums.size();i++)
{
int x=nums[i];
if(c1&&r1==x) c1++;
else if(c2&&r2==x) c2++;
else if(!c1) r1=x,c1++;
else if(!c2) r2=x,c2++;
else c1--,c2--;
}
c1=0,c2=0;
int n=nums.size();
vector<int>ans;
for(int i=0;i<nums.size();i++)
{
if(nums[i]==r1) c1++;
else if(nums[i]==r2) c2++;
}
if(c1>n/3) ans.push_back(r1);
if(c2>n/3) ans.push_back(r2);
return ans;
}
};
以上是关于229. 求众数 II摩尔投票法的扩展的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 453. 最小操作次数使数组元素相等 / 66. 加一 / 229. 求众数 II(摩尔投票法)
229 Majority Element II 求众数 II