#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
class Solution {
public:
int MoreThanHalfNum_Solution(vector<int>& numbers) {
if(numbers.size()==1){
return numbers[0];
}
std::sort(numbers.begin(),numbers.end());
int Foud=numbers.size()/2;//中间次数
int a=0;
int firstpoint=1;
int lastpoint=1;
for(lastpoint=1;lastpoint<numbers.size();lastpoint++){
if(numbers[lastpoint]==numbers[lastpoint-1]){//我这个firstpoint意义不大,本来想前后指针,发现不用
numbers[firstpoint]=numbers[lastpoint];
++firstpoint;
++a;//及时更新次数
}
if(a>=Foud){
return numbers[firstpoint-1];//返回上一个比较的值
}
if(numbers[lastpoint]!=numbers[lastpoint-1]){
a=0;//不相等重置a
}
}
return -1;
}
};