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.
class Solution { public: int majorityElement(vector<int> &num) { if(num.size() == 1){ return num[0]; } map<int, int> myMap; float majorPercent = num.size() / 2.0; for(int i = 0; i < num.size(); ++i){ int key = num[i]; if(myMap.find(key) == myMap.end()){ myMap.insert(pair<int,int>(key,1)); }else{ int beforeCount = myMap[key]; ++beforeCount; myMap[key] = beforeCount; if(beforeCount > majorPercent){ return key; } } } return 0; } };
思路 : 用map当然是比较直线的解决方案。值作为key,出现的次数作为value。