标签:
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; } };
http://www.waitingfy.com/archives/1628
标签:
原文地址:http://blog.csdn.net/fox64194167/article/details/44226927