最开始自己想用计数法遍历,太麻烦。
方法一:排序,取中位数
class Solution {
public:
int majorityElement(vector<int>& nums) {
int n=nums.size();
sort(nums.begin(),nums.end());
return nums[n/2];
}
};
方法二:哈希表
class Solution {
public:
int majorityElement(vector<int>& nums) {
unordered_map<int,int>map;
int n=0,k=0;
for(int num:nums){
++map[num];
if(map[num]>n){
n=map[num];
k=num;
}
}
return k;
}
};