OJ ----- 牛客 JZ28 : 数组中出现次数超过一半的数字
程序员文章站
2022-06-11 11:10:34
...
class Solution {
public:
int MoreThanHalfNum_Solution(vector<int> numbers) {
if (numbers.empty())
return 0;
//思路:
//给数组排序, 如果符合要求那么这个数字一定就是数组中间靠右的那个数字
//取到这个数字, 进行遍历验证一下是否符合要求
//排序取中间靠右的值, 因为数组从0开始, 所以这里只要size/2即可
sort(numbers.begin(), numbers.end());
int mid = numbers[numbers.size() / 2];
int count = 0;
for (int i = 0; i < numbers.size(); i++) {
if (numbers[i] == mid)
count++;
}
if (count > numbers.size() / 2)
return mid;
else
return 0;
}
};