练习 学习算法和数据结构知识
202104-1 灰度直方图

我的代码(得分100)

#include<iostream>
using namespace std;
int a[3000][3000];
int h[1000];
int main()
{
	int n,m,L;
	cin>>n>>m>>L;
	for(int i=0;i<n;i++)
	for(int j=0;j<m;j++)
	cin>>a[i][j];
	
	for(int i=0;i<L;i++)
	{
		for(int j=0;j<n;j++){
	    for(int k=0;k<m;k++){
	    	if(i==a[j][k])
	    	{
	    		h[i]++;
			}
	    }
		}
	}
	for(int i=0;i<L;i++){
		if(i==0) cout<<h[i];
		if(i!=0)cout<<" "<<h[i]; 
	}
	return 0;
}

优化代码(得分100)

可以不用想到矩阵,用数组对每一个数进行计数即可!

#include<iostream>
using namespace std;
int h[256];
int main()
{
	int n,m,l,temp;
	cin>>n>>m>>l;
	for(int i=0;i<n;i++)
	for(int j=0;j<m;j++)
	{
		cin>>temp;
		h[temp]++;
	}
	for(int i=0;i<l;i++)
	cout<<h[i]<<" ";
}