gpt4 book ai didi

JAVA - 如何在二维数组的行和列中查找重复值?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:25:44 26 4
gpt4 key购买 nike

我有一个二维数组,我想找到一种更简单的方法来操作我的代码,以便它可以找到列中是否有重复项,并且比我下面的方法更简单:

for (int i=0; i < array.length; i++) {
for (int j=0; j < array.length; j++) {
for (int k=1; k < array.length; k++){
if (array[j+k][i] == array[j][i]) {
if (array[j][i] != 0) {
return true;
}
}
}
}
}
return false;

编辑:请指出以上 ^^ 也不会工作,因为它会抛出越界异常

这种方式有太多循环,我相信必须有一种更简单的方法来查找重复项,而不是经历这个庞大的循环过程。

这是一个方形二维数组,即。行数 = 列数的数组。

如果是这样,这种新方法如何工作 - 我如何操作它来查找行中的重复值。

感谢您的帮助。

最佳答案

您可以使用HashSet 来存储所有已经遇到的元素。应该是这样的:

static boolean noDupes(int[][] array) {
for (int i=0; i < array.length; i++) {
HashSet<Integer> set = new HashSet<Integer>();
for (int j=0; j < array.length; j++) {
if (set.contains(array[j][i])) return false;
set.add(array[j][i]);
}
}
return true;
}


这个解决方案是 O(length^2) = O(n),其中 n 是矩阵的总大小。我认为就大 O 而言它是理想的,因为您需要检查所有元素。

关于JAVA - 如何在二维数组的行和列中查找重复值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6122315/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com