代码:
class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param numbers int整型vector * @return int整型*/int MoreThanHalfNum_Solution(vector<int>& numbers) {int sz=numbers.size();int result=numbers[0];int times=0;for(int i=0;i<sz;i++)//因为一开始times==1,因此i应该从1开始{if(times!=0){if(numbers[i]!=result){times--;}else//记录重复元素个数{times++;}}else//众数与非众数相消完了,重新开始消除{result=numbers[i];times=1;}}//一般来讲最后的result不一定是符合要求的数字,但题目中保证数组中是有超过数组长度一半的数字的,因此不用遍历return result;}
};