题目大意:给出奇数个数组,要求你找出出现次数大于等于一半的数字
解题思路:排序,暴力找
#include <cstdio>
#include <algorithm>
using namespace std;
const int N = 1000010;
int n;
int num[N];
void init() {
for (int i = 0; i < n; i++)
scanf("%d", &num[i]);
sort(num, num + n);
}
void solve() {
int Max = (n + 1) / 2;
int cnt = 1, tmp = num[0];
for (int i = 1; i < n; i++) {
if (num[i] == tmp) {
cnt++;
}
else {
if (cnt >= Max) {
printf("%d\n", tmp);
cnt = -1;
break;
}
cnt = 1;
tmp = num[i];
}
}
if (cnt >= Max) {
printf("%d\n", tmp);
}
}
int main() {
while (scanf("%d", &n) != EOF) {
init();
solve();
}
return 0;
}