1 class Solution { 2 public: 3 int MoreThanHalfNum_Solution(vector<int> numbers) { 4 int len = numbers.size(); 5 if (len == 0) 6 return 0; 7 int MAX = len / 2; 8 map<int,int> mm; 9 for (int i = 0; i < len ; ++i) 10 { 11 if (mm.count(numbers[i]) == 0) 12 { 13 mm[numbers[i]] = 1; 14 } 15 else 16 { 17 ++ mm[numbers[i]]; 18 } 19 } 20 for (map<int,int>::iterator it = mm.begin() ; it != mm.end() ; ++ it) 21 { 22 if (it->second > MAX) 23 { 24 return it->first; 25 } 26 } 27 return 0; 28 } 29 };
原文:http://www.cnblogs.com/xiaoyesoso/p/5157958.html