解题思路:
数组中出现次数超过一半,将数组进行排序,如果存在这个数的话这个数一定出现在数组中间位置。取出中间数据,将数组遍历一遍,数出此数据出现的次数。若次数超过一半,则返回此数,否则返回0。
class Solution {
public:
int MoreThanHalfNum_Solution(vector<int> numbers) {
sort(numbers.begin(), numbers.end());
int half = numbers.size() / 2;
int num = numbers[half];
int i;
int j = 0;
for (i = 0; i < numbers.size(); i++){
if (numbers[i] == num){
j++;
}
}
if (j <= half){
return 0;
}
else{
return num;
}
}
};