摩尔投票法

摩尔投票法

关于leetcode:主要元素使用摩尔投票法求解:

class Solution
{
public:
    int majorityElement(vector<int>& nums)
    {
        if (nums.size() == 0) return -1;
        if (nums.size() == 1) return nums[0];
        int major, count = 0;
        for (auto num : nums)
        {
            if (count == 0)
            {
                major = num;
                count = 1;
            }
            else
            {
                if (num == major) count++;
                else
                {
                    count--;
                }
            }
        }
        int count1 = 0;
        for (auto num : nums)
        {
            if (num == major)
            {
                count1++;
            }
        }
        return count1 > nums.size() / 2 ? major : -1;
    }
};

 

posted @ 2020-10-13 23:21  AI_ON  阅读(89)  评论(0)    收藏  举报