我今天参加了计算机科学考试。在这里我必须编写一些不同的算法。我设法做的大多数,但最初的一个问题完全让我失望。
二维数组用于在数独游戏的3 * 3网格中存储数字。网格包含从1到9的数字。对于那些不熟悉数独的人,只允许在3 * 3网格中使用每个数字一次。 这个问题让我写一个checkGrid()算法来比较数组中的值,以检查是否有任何重复。如果没有找到,则应输出“Success”,如果有双值,则应输出“Failure”。 我怎样才能做到这一点?我真的没有线索。
我花了很多时间在考试中试图解决这个问题并且几乎没有完成我的论文.-也许当他们告诉你跳过一个你不知道要回来的问题时,你应该听老师的话以后......
答案 0 :(得分: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");
}