给定一个非负整数数组,统计里面每一个数的出现次数。
假设 Fmax (Fmax<10000) 是数组里最大的数,我们需要统计0,1,2,Fmax里每个数出现的次数
输入
第一行 n 是数组的大小。
紧接着一行是数组的 n 个元素。
输出
按顺序输出每个数的出现次数,一行一个数。如果没有出现过,则输出 00。
对于例子中的数组,最大的数是 3,因此我们只统计{0,1,2,3} 的出现频数。
样例
输入
5 1 1 2 3 1
输出
0 3 1 1
代码
#include <bits/stdc++.h>
using namespace std;
int cnt[10010];//统计x出现了几次
int main()
{
int n;
scanf("%d",&n);
int x;
int fmax=0;
for(int i=1;i<=n;i++)
{
scanf("%d",&x);
cnt[x]++;//"桶"原理
if(x>fmax)
{
fmax=x;
}
}
for(int i=0;i<=fmax;i++)
{
printf("%d\n",cnt[i]);
}
return 0;
}