だから私のコードに少し問題があります..同じ整数の行と列をクロスチェックすることを想定しています。
これは私がこれまでに持っているものです..しかし、私がそれを実行すると、最初の整数のみをチェックするように見えます。(たとえば、数独ボードの最初の行は次のようになります。1 2 2 2 2 2 2 2 2 2)明らかな複数の2は検出されませんが、入力を1 1 2 2 2 2 222に変更するとエラーが発生します。この場合、複数の1のアップ。ループを微調整して列を通過させるための複数の提案はありますか?
public static void validate(final int[][] sudokuBoard) {
int width = sudokuBoard[0].length;
int depth = sudokuBoard.length;
for (int i = 0; i < width; i++) {
int j = i;
int reference = sudokuBoard[i][j];
while (true) {
if ((j >= width) || (j >= depth)) {
break;
}
else if (i == j){
// do nothing
}
else if (j < width) {
int current = sudokuBoard[i][j];
if (current == reference) {
System.out.print("Invalid entry found (width)" + "\n");
System.out.print(current + "\n");
// invalid entry found do something
}
} else if (j < depth) {
// note reversed indexes
int current = sudokuBoard[j][i];
if (current == reference) {
System.out.print("Invalid entry found (depth)" + "\n");
System.out.print(current + "\n");
// invalid entry found do something
}
}
j++;
}