【发布时间】:2017-11-13 05:20:09
【问题描述】:
我是一个刚学习数组的初学者。我最近学习了二维数组,我试图找出二维数组中是否有重复项。我知道如何检查同一列或同一行中是否有重复项,但我无法弄清楚如何比较一个数字,如果它与我尝试比较的数字不在同一列或同一行中。这是我现在的代码:
public static boolean correctNumbers(int[][] values) {
for (int i = 0; i < values.length; i++) {
for (int j = 0; j < values[i].length; j++) {
int num = values[i][j];
for (int k = j + 1; k < values.length; k++) {
if (num == values[i][k] || num > values.length * values.length || num < 1) {
return false;
}
}
for (int l = i + 1; l < values.length; l++) {
if (num == values[l][j] || num > values.length * values.length || num < 1) {
return false;
}
}
}
}
return true;
}
我需要创建一个方法,我不能使用任何其他方法来创建它。 感谢您的帮助!
编辑:如果数组中有重复项、数组中的数字小于 1 或大于数组中元素的总数,则返回 false。换句话说,此方法正在检查数组是否包含数组中 1 到 (i*j) 的所有值。我意识到我在解释那部分方面做得不好。再次感谢!
【问题讨论】:
-
@KaustubhKhare 确实是 dup,但那里和从那里链接的 dup 都没有好的答案
-
是的,但是在链接的问题中,我真的不知道最佳答案中发生了什么。
-
根据您的编辑,二维数组似乎应该包含所有值 1...n^2 而没有重复(每个数字应该只出现一次)。现在这是一个不同的问题,您可以使用另一个数组作为附件吗?
标签: java arrays duplicates