Given an array of size n, find the majority element. The majority element is the element that appears more than ?
n/2 ? times.
You may assume that the array is non-empty and the majority element always exist in the array.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
class Solution
{
public:
int majorityElement(vector<int> &num)
{
int flag = 0;
int n=num.size();
if(n==0)
return -1;
int res = num[0];
for(int i=1; i<n; i++)
{
if(num[i]==res)
flag++;
else
{
if(flag>0)
flag--;
else
res = num[i];
}
}
return res;
}
};原文地址:http://blog.csdn.net/shaya118/article/details/42775003