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.
1、题目解析:
主要是用到了hash表来存放数字出现的次数
int majorityElement(vector<int> &num) {
map<int,int> numCount;
int len = num.size();
if(len == 1)
{
return num[0];
}
int threshold = len/2;
for(int i=0;i<len;i++)
{
if(numCount.find(num[i]) == numCount.end())
{
numCount[num[i]] = 1;
}else{
numCount[num[i]] = numCount[num[i]] + 1;
if(numCount[num[i]] > threshold)
{
return num[i];
}
}
}
}