比较二维数组中的值



我今天有一个计算机科学考试。在这里,我必须写一些不同的算法。大多数问题我都能答出来,但第一个问题就把我难住了。

在数独游戏中,使用二维数组来存储3 * 3网格中的数字。网格包含从1到9的数字。对于那些不熟悉数独的人,你只允许在3*3的网格中使用每个数字一次。这个问题要求我编写一个checkGrid()算法来比较数组中的值,以检查是否有重复的值。如果没有找到,应该输出"Success",如果有双值,应该输出"Failure"。我怎样才能做到这一点呢?我真的不知道。

我在考试中花了很多时间试图弄清楚这个问题,勉强完成了我的论文。-也许你应该听老师的话,当他们告诉你跳过一个你不知道的问题,然后再回来做……

有很多选择,但我能想到的最简单的方法是使用Set:

public void checkGrid(int[][] grid) {
    Set<Integer> set = new HashSet();
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            if (set.contains(grid[i][j])) {
                System.out.println("Failure");
                return;
            } else {
                set.add(grid[i][j]);
            }
        }
    }
    System.out.println("Success");
}

相关内容

  • 没有找到相关文章

最新更新