classSolution{public:intMoreThanHalfNum_Solution(vector<int> numbers){int n = numbers.size();
unordered_map<int,int> map;for(int i =0; i < n; i++){
map[numbers[i]]++;}for(auto it:map){if(it.second > n /2)return it.first;}return0;}};
方法二 众数法
classSolution{public:intMoreThanHalfNum_Solution(vector<int> numbers){int candidate = numbers[0];int count =0;int n = numbers.size();for(int i =1; i < n; i++){if(count ==0){
candidate = numbers[i];
count++;}else{if(numbers[i]== candidate) count++;else count--;}}int k =0;for(int i =0; i < n; i++)if(numbers[i]== candidate)
k++;if(k > n /2)return candidate;return0;}};