HDU 1029

来源:互联网 发布:萨维尔街 知乎 编辑:程序博客网 时间:2024/05/22 02:30

题目大意:输入一个奇数N,接着输入N个数,找出其中出现个数为(N+1)/2的数。

解题思路:因为出现次数为奇数+1的一半,也就是出现次数大于N/2的数。用map存下出现的数以及出现的次数。

ac代码:

#include <iostream>#include <map>using namespace std;map <int, int>ma;int n, t, re;int main(){while (scanf("%d", &n) != EOF){for (int i=0; i<n; i++){scanf("%d", &t);ma[t]++;if (ma[t] > n/2)re = t;}printf("%d\n", re);ma.clear();}return 0;}
原创粉丝点击