0

我今天参加了计算机科学考试。在这方面,我必须编写许多不同的算法。其中大多数我设法做到了,但第一个问题完全让我失望。

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

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

4

1 回答 1

0

有很多选择,但我能想到的最简单的方法是使用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");
}
于 2013-05-15T10:08:21.320 回答