Problem D: 数字统计
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1488 Solved: 535
Description
给出一些数字,统计出现最多的数字的次数。
Input
输入中第一行包含一个N,0 < N <= 500000。
后面N行每行包含一个数字k,0<=k<=200000。
Output
输出出现次数最多的数字的个数。
Sample Input
5 1 1 2 3 4
Sample Output
2
HINT
Append Code
坑爹的题,首先你要明白什么事数字。
#include<stdio.h>
int main()
{
int i,n;
scanf("%d",&n);
int num[200001]={0},a;
for(i=0;i<n;i++)
{
scanf("%d",&a);
num[a]++;
}
int max;
max=num[0];
for(i=1;i<=200000;i++)
{
if(num[i]>max)
max=num[i];
}
printf("%d",max);
return 0;
}
下面有一个冒泡思想的,代码比较精炼:
#include<stdio.h>
# define N 200005
int main()
{
int i,n;
int max=-1,in,num[N]={0};
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&in);
num[in]++;
if(max<in)
max=in;
}
for(i=0;i<max;i++)
if(num[i]>num[i+1])
num[i+1]=num[i];
printf("%d",num[max]);
return 0;
}