二维数组中的元素查重
描述
设二维数组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;
#define Maxsize 50
int main() {
int n, m;
while (1) {
cin >> m >> n;
if (m == 0 && n == 0) {
break;
}
int a[Maxsize];
int flag = 0;
for (int i = 0; i < m*n; i++) {
cin >> a[i];
}
for (int i = 0; i < m * n; i++) {
int temp = a[i];
for (int j = i + 1; j < m * n; j++) {
if (a[j] == temp) {
flag = 1;
}
}
}
if (flag == 0) {
cout << "NO" << endl;
}
else {
cout << "YES" << endl;
}
}
return 0;
}