gpt4 book ai didi

java - 数独计数子字段

转载 作者:行者123 更新时间:2023-11-30 07:16:55 26 4
gpt4 key购买 nike

我目前正在开发 SudokuChecker 我想检查数独的子字段 [3x3]。以下代码执行此操作:

int[][] field = new field[9][9];
int wrongNumbers = 0;
for (int i = 0; i < 9; i += 3) {
for (int j = 0; j < 9; j += 3) {

// Check subfield by using an array
int arr[] = new int[10];
for (int k = 0; k < 3; k++) {
for (int l = 0; l < 3; l++) {
arr[field[i + k][j + l]]++;
}
}

for (int k = 1; k < arr.length; k++) {
wrongNumbers += arr[k] > 1 ? arr[k] - 1 : 0;
}
}
}

我想知道给定的代码有什么改进吗?(我不是在谈论使 39 等保持不变)

最佳答案

我在 thucnguyen 的 Codefights 中找到了一个非常好的答案:

boolean sudoku(int[][] grid) {
for (int i = 0; i <9; i++) {
int row = 0, col = 0, group = 0;
for (int j = 0; j <9; j++) {
// check for row i
row += grid[i][j];

// check for col i
col += grid[j][i];

// check for sub-grid i
group += grid[i / 3 * 3 + j / 3][i % 3 * 3 + j % 3];
}

if (row != 45 || col != 45 || group != 45) return false;
}

return true;
}

关于java - 数独计数子字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38207793/

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