gpt4 book ai didi

java - 如何在 Java 中实现检查数独是否有效?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:16:36 26 4
gpt4 key购买 nike

我想执行一个检查,看看数独在 Java 中是否有效,并且遇到了 ( http://leetcode.tgic.me/valid-sudoku/index.html )。

我了解它是如何验证行和列的,但对于 3x3 网格 validator :

34         for(x = 0; x < mx; x += 3){
35 for(y = 0; y < my; y += 3){
36
37 HashSet<Character> block = new HashSet<Character>();
38
39 for(int offset = 0; offset < 9; offset++){
40 int ox = offset % 3;
41 int oy = offset / 3;
42
43 char c = board[x + ox][y + oy];
44 if(c != '.'){
45 if(block.contains(c)) return false;
46
47 block.add(c);
48 }
49 }
50 }
51 }

什么是 offset?它如何帮助检查 3x3 网格中的每个单元格?我强行使用它并首先尝试了 x=0、y=0offset=0offset=1,但是 offset= 1 给出 int ox = 1%3 = 1;int oy = 1/3,所以 board[0 + 1][0 +(1/3)] = board[1][1/3],cell [1/3]代表什么等等?

最佳答案

当您将 n 除以 m 时,两者都是 int(文字或变量),结果也是 int,因此 1/3 -> 0因此当偏移量 == 0 => ox=0, oy=0偏移量 == 1 => ox=1, oy=0偏移量 == 2 => ox=2, oy=0偏移量 == 3 -> ox=0, oy=1...因此你会很好地循环 3 行和 3 列

关于java - 如何在 Java 中实现检查数独是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40568563/

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