1115:直方图
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 21217 通过数: 13727
【题目描述】
给定一个非负整数数组,统计里面每一个数的出现次数。我们只统计到数组里最大的数。
假设 Fmax(Fmax<10000)是数组里最大的数,那么我们只统计{0,1,2.....Fmax}里每个数出现的次数。
【输入】
第一行n是数组的大小。1≤n≤10000。
紧接着一行是数组的n个元素。
【输出】
按顺序输出每个数的出现次数,一行一个数。如果没有出现过,则输出0。
对于例子中的数组,最大的数是3,因此我们只统计{0,1,2,3}的出现频数。
【输入样例】
5
1 1 2 3 1
【输出样例】
0
3
1
1
我的代码:
#include<bits/stdc++.h>
using namespace std;
int n,a[10001],max1=0,b,num;
int main()
{
cin>>n;
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
{
if(a[i]>max1)
{
max1=a[i];
b=i;
}
}
for(int j=0;j<=max1;j++)
{
num=0;
for(int i=1;i<=n;i++)
{
if(a[i]==j) num++;
}
cout<<num<<endl;
}
return 0;
}
运行结果:
【1115】程序运行结果
用户名:15997682622,题目编号:1115,运行编号:9148291,代码长度:369Bytes
通过
测试点 结果 内存 时间
测试点1 答案正确 456KB 6MS
测试点2 答案正确 448KB 10MS
测试点3 答案正确 448KB 8MS
测试点4 答案正确 472KB 80MS
测试点5 答案正确 464KB 237MS
测试点6 答案正确 460KB 341MS
测试点7 答案正确 480KB 698MS
测试点8 答案正确 500KB 558MS
测试点9 答案正确 504KB 749MS
测试点10 答案正确 508KB 759MS
------------------------------------------------------------------------
洛谷上超时,一本通通过,请大佬看看能不能进一步优化,谢谢啦