HDU
来源:互联网 发布:阿波波英语软件下载 编辑:程序博客网 时间:2024/06/13 21:18
题目大意:给出奇数个数,输出这些数中出现 (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;}
阅读全文
0 0