坦然玲子  

 

 

编号统计

时间限制:2000 ms  |  内存限制:65535 KB
难度:2

 

 

 

描述
zyc最近比较无聊,于是他想去做一次无聊的统计一下。他把全校同学的地址都统计了一下(zyc都将地址转化成了编码),然后他希望知道那个地方的同学最多(如果同学最多的地方有多个,输出编号最小的一个)。

 

 

 

输入
第一行输入一个正整数T(0<T<=11)表示有T组测试数据
每组测试数据第一行输入一个正整数N(0<N<200000)表示有N个编号,随后输入N个编码(编码由数字组成且少于十位)
输出
每组数据输出占一行输出出现次数最多的编号
样例输入
1
5
12345 456 45 78 78
样例输出
78
我的:

#include<iostream>
#include<algorithm>

using namespace std;


int c[200000];
int main()
{
  int t,n,i,k,m,l,little;
 
  cin>>t;
  while(t--)
  {
    cin>>n;
  k=1;
  m=1;
    for(i=0; i<n; i++)
   cin>>c[i];
   sort(c,c+n);
   little=c[0];
   for(i=1; i<n; i++)
   {
     if(c[i]==c[i-1])
  {
   k++;
         l=c[i];
  }
  else
  {
   if(m<k)
   {
       m=k;
          little=l;
   }
   k=1;
  }
   }
  cout<<little<<endl;
  }
  return 0;
}

高手的

 

02.#include<iostream>
03.#include<map> //容器技术
04.#include<cstdio>
05.using namespace std;
06.int main()
07.{
08.       
09.    int t;cin>>t;
10.    while(t--){
11.        map<int,int> m;
12.        int n,v;cin>>n;
13.        for(int i=0;i<n;i++){
14.            scanf("%d",&v);
15.            m[v]++;
16.        }
17.        int c=0;
18.        map<int,int>::iterator it0=m.begin();
19.        for(map<int,int>::iterator it=m.begin();it!=m.end();it++)
20.            if(c<it->second)c=it->second,it0=it;
21.        cout<<it0->first<<endl;
22.    }
23.      
24.}
posted on 2012-03-10 23:59  坦然玲子  阅读(280)  评论(0编辑  收藏  举报