gpt4 book ai didi

java - 二维数组和方法调用 - 初学者

转载 作者:太空宇宙 更新时间:2023-11-04 13:13:57 25 4
gpt4 key购买 nike

我目前正在为初级类(class)做家庭作业,我需要帮助构建一个程序来测试以 int[][] 形式呈现的数独解决方案是否有效。我通过创建检查行、列和网格的辅助方法来做到这一点。

为了检查列,我调用了一个名为 getColumn 的方法,该方法返回一个列[]。当我测试它时,效果很好。然后,我将其传递给一个名为 uniqueEntries 的方法,以确保不存在重复项。

问题是,当我调用 getColumn 方法时,它返回一个仅包含一个数字的数组(例如 11111111、22222222、33333333)。我不知道为什么会这样做。这是我的代码:

int[][] sodokuColumns = new int[length][length];

for(int k = 0 ; k < sodokuPuzzle.length ; k++) {
sodokuColumns[k] = getColumn(sodokuPuzzle, k);
}

for (int l = 0; l < sodokuPuzzle.length; l++) {
if(uniqueEntries(sodokuColumns[l]) == false) {
columnStatus = false;
}
}

我的助手如下

public static int[] getColumn(int[][] intArray, int index) {

int[] column = new int[intArray.length];

for(int i = 0 ; i < intArray.length ; i++) {
column[i] = intArray[i][index];
}
return column;
}

谢谢!

最佳答案

你说:

when I call my getColumn method, it returns an array consisting of only one number (for example 11111111, 22222222, 33333333).

我没有发现您的 getColumn 方法有任何问题,只是根本不需要它,因为 getColumn(sodokuPuzzle, k)sodokuPuzzle[k] 相同。如果您打算以第一个索引是列的方式概念化您的二维数组,那么为了检查唯一性,您只需要编写一个方法来获取行。

您遇到的问题似乎与您未共享的代码的另一部分有关。我怀疑接受用户输入的逻辑存在错误,并且错误地填充了谜题。

最后,检查唯一性的一个技巧(如果您被允许使用它)是创建某种类型的Set(例如HashSet)并将所有项目(在您的情况下是整数)添加到该集合中。如果该集合的大小与原始项目数组的大小相同,则这些项目都是唯一的,如果大小不同,则存在重复项。

关于java - 二维数组和方法调用 - 初学者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33703138/

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