2025年--Lc169--H36.有效的数独(矩阵)--Java版

1.题目

2.思路

(1)用二维数组rows存储行数组

(2)用二维数组column存储列数组

(3)用三维数组存储9个小矩阵(三行三列总共9个小矩阵)

遇到一个元素,则对该元素的行数组和列数组都进行计数,如果行数组和列数组的计数分别大于1,返回false;以及如果9个小矩阵的计数也大于1,则返回false;

例子:

假设在 (i=0, j=1) 位置看到字符 '5':

如果在同一行/列/子宫格里再次遇到 '5',对应位置的计数会变为 2,你就可以判定数独无效

java 复制代码
int index = '5' - '1'; // 4
rows[0][4]++        // 第0行的"数字5"计数+1
columns[1][4]++     // 第1列的"数字5"计数+1
subboxes[0/3][1/3][4]++  // subboxes[0][0][4]++:左上角子宫格里的"数字5"计数+1

3.代码实现

java 复制代码
class Solution {
    public boolean isValidSudoku(char[][] board) {
        int[][] rows=new int[9][9];
        int[][] column=new int[9][9];
        int[][][] sub=new int[3][3][9];
        for(int i=0;i<9;i++)
        {
            for(int j=0;j<9;j++)
            {
                char c=board[i][j];
                if(c!='.')
                {
                    int index=c-'0'-1;
                    rows[i][index]++;
                    column[j][index]++;
                    sub[i/3][j/3][index]++;
                    //这边的[index]代表当前的字符
                    if(rows[i][index]>1||column[j][index]>1||sub[i/3][j/3][index]>1)
                    {
                        return false;
                    }

                }
            }
        }
        return true;
        
    }
}
相关推荐
我是大聪明.8 小时前
CUDA矩阵乘法优化:共享内存分块与Warp级执行机制深度解析
人工智能·深度学习·线性代数·机器学习·矩阵
做cv的小昊14 小时前
【TJU】研究生应用统计学课程笔记(6)——第二章 参数估计(2.4 区间估计)
人工智能·笔记·线性代数·算法·机器学习·数学建模·概率论
EnCi Zheng16 小时前
02a-什么是矩阵
线性代数·矩阵
AI科技星16 小时前
《全域数学》第一部:数术本源·第二卷《算术原本》之十四附录(二)全域数学体系下三大数论猜想的本源推演与哲学阐释【乖乖数学】
人工智能·线性代数·机器学习·量子计算·agi
有为少年1 天前
从概率估计到“LLM 训练是有损压缩”
人工智能·线性代数·机器学习·计算机视觉·矩阵
风落无尘1 天前
第二章《概率与生存》完整学习资料
人工智能·矩阵·概率论
大江东去浪淘尽千古风流人物2 天前
【UV-SLAM】eLSD/LBD 数据维度 UV-SLAM吸收借鉴
数据库·线性代数·oracle·矩阵·uv·augmented reality
风落无尘2 天前
《智能重生:从垃圾堆到AI工程师》——第三章 矩阵与防线
人工智能·线性代数·矩阵
玛丽莲茼蒿2 天前
Leetcode hot100 螺旋矩阵【中等】
算法·leetcode·矩阵
个微管理2 天前
小红书新规深度拆解:从被封到破局,2026年矩阵号生存手册
大数据·人工智能·矩阵