LeetCode169-多数元素-数学

  • Post author:
  • Post category:其他



原题链接


在这里插入图片描述



Note:Boyer-Moore 投票算法

一开始随便定一个候选的数,遍历数组,如果一样,cnt++ 否则 cnt –

如果等于0了,那么就更换当前的数作为新的候选数

这样到最后,指定能找到最多的那一个



代码如下:

class Solution {
public:
    int majorityElement(vector<int>& nums) {
        int c = nums[0], cnt = 1;
        for(int i = 1; i < nums.size(); i ++){
            if(cnt == 0)
                c = nums[i], cnt = 1;
            else if(c == nums[i])
                cnt ++;
            else 
                cnt --;
        }
        return c;
    }
};



版权声明:本文为Mr_Ghost812原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。