题目

题目

找出出现的次数超过n/2的元素,我们每次都删除不同的两个元素,最后剩下的肯定就是了,但是有可能整个数组中都没有符合添加的元素,这样的话,我们就需要在进行判断一次

代码实现

class Solution {
    public int majorityElement(int[] nums) {
        int count=0;
        int host=0;
        for(int i=0;i<nums.length;i++)
        {
            if(count==0)
            {
                host=nums[i];
                count=1;
            }else if(host==nums[i])
            {
                count++;
            }else if(host!=nums[i])
            {
                count--;
            }
        }
        count=0;
        for(int i=0;i<nums.length;i++)
        {
            if(nums[i]==host)
            {
                count++;
            }
        }
        return count>nums.length/2?host:-1;
    }
}