You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现数独全部3×3区块的完整性校验?现有代码仅支持首个区块

解决数独所有3×3区块的检查问题

没问题,我来帮你调整这段代码!你的原代码只处理了左上角第一个3×3区块,而且只检查了区块内有没有重复数字,没有验证是否包含1-9的完整数值。下面是修改后的完整代码,能覆盖所有9个区块,同时满足“无重复+包含1-9全部数字”的要求:

public static boolean checkSubs(int[][] p) {
    // 遍历所有3×3区块的起始行(0、3、6)
    for (int startRow = 0; startRow < 9; startRow += 3) {
        // 遍历所有3×3区块的起始列(0、3、6)
        for (int startCol = 0; startCol < 9; startCol += 3) {
            int[] nums = new int[9];
            int x = 0;
            boolean hasDuplicate = false;
            
            // 遍历当前区块内的3行3列
            for (int i = startRow; i < startRow + 3; i++) {
                for (int j = startCol; j < startCol + 3; j++) {
                    int temp = p[i][j];
                    // 检查当前数字是否已经在nums中(重复检查)
                    for (int m = 0; m < x; m++) {
                        if (nums[m] == temp) {
                            hasDuplicate = true;
                            break;
                        }
                    }
                    if (hasDuplicate) break;
                    nums[x++] = temp;
                }
                if (hasDuplicate) break;
            }
            
            if (hasDuplicate) {
                return false;
            }
            
            // 检查当前区块是否包含1-9的所有数字(全覆盖检查)
            for (int num = 1; num <= 9; num++) {
                boolean found = false;
                for (int m = 0; m < nums.length; m++) {
                    if (nums[m] == num) {
                        found = true;
                        break;
                    }
                }
                if (!found) {
                    return false;
                }
            }
        }
    }
    // 所有区块都通过检查
    return true;
}

关键改动说明:

  • 遍历所有区块:新增两层外层循环,分别控制每个区块的起始行和起始列(每次步进3,对应数独的3×3区块划分)
  • 独立检查每个区块:每个区块都重新初始化nums数组和计数器x,避免不同区块的数据互相干扰
  • 补充全覆盖验证:原代码只检查了无重复,但没有确认是否包含1-9所有数字,新增的循环会逐一验证1到9是否都存在于当前区块中
  • 提前终止优化:一旦发现重复或缺失数字,立即返回false,不需要继续检查后续区块,提升效率

内容的提问来源于stack exchange,提问作者Shoug

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:44:50