抵消法:
class Solution {
public:
int MoreThanHalfNum_Solution(vector<int> numbers) {
if(numbers.empty())return 0;
int result=numbers[0];
int times=1;
for(int i=1;i<numbers.size();i++){
if(times!=0){
if(result==numbers[i]){
++times;
}else{
--times;
}
}else{
result=numbers[i];
times=1;
}
}
int count=0;
for(int i=0;i<numbers.size();i++){
if(result==numbers[i]){
++count;
}
}
if(count>numbers.size()/2){
return result;
}else{
return 0;
}
}
};

京公网安备 11010502036488号