LeetCode 169. 多数元素

//摩尔投票法
//1.如果候选人不是maj 则 maj,会和其他非候选人一起反对 会反对候选人,所以候选人一定会下台(maj==0时发生换届选举)
//2.如果候选人是maj , 则maj 会支持自己,其他候选人会反对,同样因为maj 票数超过一半,所以maj 一定会成功当选
class Solution {
    public int majorityElement(int[] nums) {
        int count = 0;
        int maj = -1;
        for(int num : nums){
            if(count == 0){
                maj = num;
            }
            if(maj == num){
                count++;
            }else{
                count--;
            }
        }
        return maj;
    }
}

评论区的大神xinchen给出了风趣的解释,

 

posted @ 2020-11-01 11:46  peanut_zh  阅读(74)  评论(0编辑  收藏  举报