这道题主要使用摩尔投票法。
class Solution {
public:
int majorityElement(vector<int>& nums) {
int major = nums[0];
int count = 1;
for (int i = 1;i < nums.size();i++)
{
if (nums[i] == major)
{
count++;
}
else
{
count--;
}
if (count == 0)
{
major = nums[i];
count = 1;
}
}
int num = 0;
for (auto i:nums)
{
if (i == major)
{
num++;
}
}
return num > nums.size() / 2 ? major : -1;
}
};