(牛客网)题目:数组中有一个数字出现次数大于等于数组长度一半,请找出这个数字。
大致思路:本题有一个很简单的方法,(前提,该数一定存在)如果那个数字的出现次数大于等于数组长度的一半,那么你把这个数组排序,中间的数就是我们要找的数。
代码奉上:
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
vector<int> arr;
int n = 10000;
int num = 0;
while (n--)
{
cin >> num;
arr.push_back(num);
}
sort(arr.begin(), arr.end());
cout << arr[arr.size() / 2] << endl;
return 0;
}