Majority Element
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.
Analysis:
This a simple question that hashmap (dict) is all we need.
Construct a hashmap that the key is each element in the num, the value is the occurrence of num.
Check the value while constructing the map can get the result.
Code(C++):
class Solution {
public:
int majorityElement(vector<int> &num) {
map<int,int> mp;
for (int i=0;i<num.size();i++){
if (mp.find(num[i]) == mp.end()){
mp[num[i]] = 1;
}else{
mp[num[i]] += 1;
}
if (mp[num[i]] > num.size()/2){
return num[i];
}
}
}
};
Code(Python):
class Solution:
# @param num, a list of integers
# @return an integer
def majorityElement(self, num):
dict = {}
for n in num:
dict[n] = dict.get(n,0) +1
if dict[n] > len(num)/2:
return n
Thanks for the solutions!
ReplyDeleteDid the same (y)
ReplyDelete