出现次数大于n/2说明这个数是最多的,遍历整个数组,用一个cnt记录一下当前出现最多的数。用哈希表存储每个数的出现次数,每次进行更新。
class Solution {
public:
int majorityElement(vector<int>& nums) {
int n=nums.size();
unordered_map<int,int>maps;
int cnt=0;//当前出现最多
int ans=0;
for(int x:nums)
{
maps[x]++;//次数+1
if(maps[x]>cnt)//如果x次数超过了cnt说明他更多了就要更新
{
cnt=maps[x];
ans=x;
}
}
return ans;
}
};