#include <unordered_map>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param numbers int整型vector
* @return int整型
*/
int MoreThanHalfNum_Solution(vector<int>& numbers) {
// write code here
// unordered_map<int, int> u_map;
// int k = numbers.size()/2 + 1;
// for(int & num:numbers){
// if(u_map.count(num)){
// u_map[num]++;
// }else{
// u_map[num] = 1;
// }
// if(u_map[num]>=k) return num;
// }
// return 0;
int count=1;
int candidate = numbers[0];
for(int i=1;i<numbers.size();i++){
if(numbers[i]==candidate){
count++;
}else{
count--;
if(count==-1){
candidate = numbers[i];
count=1;
}
}
}
if(count>0) return candidate;
else return 0;
}
};