思路:哈希表+模拟
其实这道题并不用太过于麻烦,我们可以用哈希表的特性映射,对于数组中每一个元素的个数进行存储;
之后,我们再遍历哈希表,找到其中个数超过n/2的个数对应的元素就行了。
注意:这里说的是下取整,我们不需要判断这里的奇数偶数了。
上代码:
class Solution {
public:
int majorityElement(vector<int>& nums) {
int n=nums.size();
map<int,int>m;
for(int i=0;i<n;i++){
m[nums[i]]++;
}
int num=n/2;
int res=0;
for(auto it:m){
if(it.second>num){
res=it.first;
break;
}
}
return res;
}
};