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;}
原创粉丝点击