多数元素

多数元素

 


 

变量简洁正确完整思路
随机找一个数0-n-1的下标i,计数nums[i]是否超过一半
class Solution {
public:
    int majorityElement(vector<int>& nums) {
        while(1){
            int i=rand()%nums.size();
            int count=0;
            for(int num:nums){
                if(num==nums[i])count++;
            }
            if(count>nums.size()/2)return nums[i];
        }
    }
};

变量简洁正确完整思路
投票法(不同国家士兵以一抵一除了自己人都可以杀,最后剩下的就是众数)
,国家country初始-1,士兵count初始0,正向,遇到不同国家num则count--,
如果count<0则country被取代为num,遇到相同国家num则count++
class Solution {
public:
    int majorityElement(vector<int>& nums) {
        int country=-1,count=0;
        for(int num:nums){
            if(num!=country){
                --count;
                if(count==-1)country=num,count=0;
            }else ++count;
        }
        return country;
    }
};

 

上一篇:passive 的事件监听器


下一篇:Android-kotlin-具名参数,面试资料分享