题目大意:给出奇数个数,输出这些数中出现 (N+1)/2 次数的数。 解题思路:直接排序取中间的数即可,因为是奇数个数,出现 (N+1)/2 次的数已经超过一半,一定会出现在中位数上。
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<cmath>
#include<string.h>
#include<string>
#include<queue>
#include<map>
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
const int INF =
0x3f3f3f3f;
const int NINF = -INF -
1;
const int MAXN =
999999+
5;
using namespace std;
int N;
int num[MAXN];
int main() {
while (
scanf(
"%d", &N) != EOF) {
for (
int i =
0; i < N; i++)
scanf(
"%d", &num[i]);
sort(num, num+N);
printf(
"%d\n", num[N/
2]);
}
return 0;
}