描述
设二维数组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;		
} 
附:
    原博地址
https://blog.csdn.net/weixin_43673589
                    
                
                
            
        
浙公网安备 33010602011771号