Problem
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.
Example
Input: [3,2,3]
Output: 3
Input: [2,2,1,1,1,2,2]
Output: 2
Code
static int var = [](){
std::ios::sync_with_stdio(false);
cin.tie(NULL);
return 0;
}();
class Solution {
public:
unordered_map <int,int> tmp;
int majorityElement(vector<int>& nums) {
for(int i=0;i<nums.size();i++){
tmp[nums[i]]+=1;
}
int tar = nums.size()/2;
for(const auto member:tmp){
if(member.second>tar)
return member.first;
}
}
};