求最大次数值
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 }