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摩尔投票法的扩展的主要内容,如果未能解决你的问题,请参考以下文章

229. 求众数 II-摩尔投票法

LeetCode 453. 最小操作次数使数组元素相等 / 66. 加一 / 229. 求众数 II(摩尔投票法)

229 Majority Element II 求众数 II

[E摩尔投票] lc169. 多数元素(多数投票算法+经典)

快乐水题229. 求众数 II

快乐水题229. 求众数 II