class Solution {
public:
int MoreThanHalfNum_Solution(vector<int> numbers) {
if(numbers.size() == 0)
return 0;
int num = numbers[0], count = 1;
for(int i = 1; i < numbers.size(); i++){
if(numbers[i] != num){
if((i ==( numbers.size() - 1) )&& count == 1){
num = 0;
break;
}
count --;
if(count <=0){
num = numbers[i];
count = 1;
}
}else{
count ++;
}
}
return num;
}
};

本文介绍了一种使用C++实现的寻找数组中出现次数超过一半的元素(即众数)的算法。该算法首先假设数组中的第一个元素为众数,然后遍历数组进行计数比较,最终找到符合条件的众数。
687

被折叠的 条评论
为什么被折叠?



