面试题 主要元素

55 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

题目

在这里插入图片描述

代码

class Solution {
public:
    int majorityElement(vector<int>& nums) {
        int number=1;
        int pre=nums[0];
        for(int i=1;i<nums.size();++i){
            if(nums[i]==pre){
                ++number;
            }
            else{
                --number;
                if(number==0){
                    pre=nums[i];
                    number=1;
                }
            }
        }
        int t=nums.size()/2+1;
        for(auto num:nums){
            if(num==pre){--t;}
        }
        if(t<=0){
            return pre;
        }
        else{
            return -1;
        }
    }
};

这种代码是一类代码,叫投票算法。