10203 直方图

题目描述

给定一个非负整数数组,统计里面每一个数的出现次数。我们只统计到数组里最大的数。

假设 Fmax(Fmax<10000)是数组里最大的数,那么我们只统计{0,1,2.....Fmax}里每个数出现的次数。

输入格式

第一行n是数组的大小。1 ≤ n ≤ 10000。

紧接着一行是数组的n个元素。

输出格式

按顺序输出每个数的出现次数,一行一个数。如果没有出现过,则输出0。

对于例子中的数组,最大的数是3,因此我们只统计{0,1,2,3}的出现频数。

样例

输入 #1

5
1 1 2 3 1
输出 #1

0
3
1 
1
数据范围与提示 分类标签

[一维数组]

C++题解代码

#include <bits/stdc++.h>
using namespace std;

int a[10001];
int b;
int c;
int d;


// The main procedure
int main() {
  cin>>b;
  d = (-1);
  for (int i = 1; i <= b; i++) {
    cin>>c;
    if (c > d) {
      d = c;
    }
    a[c]++;
  }
  for (int i = 0; i <= d; i++) {
    cout<<a[i];
    if (i != d) {
      cout<<'\n';
    }
  }
  return 0;
}

Blockly题解代码图片