#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; } };