二维数组中的元素查重

描述

设二维数组a[1..m, 1..n] 含有m*n 个整数。写一个算法判断a中所有元素是否互不相同。

输入

多组数据,每组数据有m+1行,第一行为二维数组的行数m和列数n,之后m行为输入的二维数组。当n=0且m=0时输入结束。

输出

对于每组数据分别输出一行,若二维数组中存在相等元素则输出“YES”,否则输出“NO”。

输入样例 1 

4 3
1 2 3
4 5 6
7 8 9
10 11 12
3 4
1 2 3 4
5 6 7 8
1 9 10 11
0 0

输出样例 1

NO
YES
#include <iostream>
using namespace std;

int CheckSame(int m,int n,int a[]);

int main()
{
	while(1)
	{
		int m,n;int i,j;
		int res=0;
		cin>>m>>n;
		if(0==m && 0==n) break;
		int a[m*n];
		for(i=0;i<m*n;i++)
				cin>>a[i];
		res=CheckSame(m,n,a);
		if(1==res) cout<<"YES"<<endl;
		else cout<<"NO"<<endl; 
	}
 } 
 
 int CheckSame(int m,int n,int a[])
{
	int cmp;int i,k;
	for(i=0;i<m*n;i++)
	{
		cmp=a[i]; 
		for(k=i+1;k<m*n;k++)
			if(cmp==a[k])
			{
				//cout<<cmp<<"!!!"<<a[k]<<" "<<i<<k<<endl;
				return 1;
			}			
	}
	return 0;		
}
发布了100 篇原创文章 · 获赞 4 · 访问量 3665

猜你喜欢

转载自blog.csdn.net/weixin_43673589/article/details/104420832