求最大次数值

3. MaxRepeatNum

Description:

给出一个整数序列,求:其中重复出现次数最多的整数,以及其出现的次数。

Input:

一个整数序列

Output:

两个整数,中间有一个空格隔开。

第一个整数:重复出现次数最多的整数;

第二个整数:第一个整数的出现次数。

Sample Input:

2 3 4 8 5 3 6 9 1 2 6 3 7 3

Sample Output:

3 4

Hint:

  如果重复出现次数最多的整数有并列几个,那么请输出其中值最小的整数。

  注意算法的时间效率和空间效率。

 1 struct maxnum
 2     {
 3         int num;
 4         int account;
 5     };
 6 #include<iostream>
 7 using namespace std;
 8 maxnum pt[1000001];
 9 int main(){                   
10     int number,i=1,j,k=1,it,max=0;
11     cin>>number;
12     pt[0].num=number;pt[0].account=1;
13   while(cin>>number)
14      {  for(j=0;j<i;j++)
15           {
16             if(number==pt[j].num) 
17             {pt[j].account=pt[j].account+1; goto A;}
18            }
19        pt[i++].num=number;pt[i-1].account=1;k=k+1;
20     A:
21        if(cin.get()=='\n')break;
22      }
23 
24   for(j=0;j<k;j++)
25   {
26     if(pt[max].account<pt[j].account) max=j;
27   }
28   it=max;
29   int min=pt[it].num;
30   for(j=0;j<k;j++)
31       if(pt[it].account==pt[j].account) 
32            if(pt[j].num<min) 
33                min=pt[j].num;
34 
35   cout<<min<<" "<<pt[it].account <<endl;
36 
37 }

 

posted on 2012-11-30 20:52  Besion王  阅读(186)  评论(0编辑  收藏  举报

导航