给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在众数。
示例 1:
输入: [3,2,3]
输出: 3
示例 2:
输入: [2,2,1,1,1,2,2]
输出: 2
class Solution {
public:
int majorityElement(vector<int>& nums) {
int n = nums.size();
for(int i=0; i<n; i++) {
itr = mp.find(nums[i]);
if(itr == mp.end()) {
mp.insert(pair<int, int>(nums[i], 1));
}
else {
itr->second++;
}
}
for(itr=mp.begin(); itr!=mp.end(); itr++) {
if(itr->second > n/2) {
return itr->first;
}
}
return nums[0];
}
map<int, int> mp;
map<int, int>::iterator itr;
};