【Leecode】Leecode刷题之路第36天之有效的数独

Scroll Down

题目出处

36-有效的数独-题目出处

题目描述

36-有效的数独-题目描述1
36-有效的数独-题目描述2

个人解法

思路:

todo

代码示例:(Java)

todo

复杂度分析

todo

官方解法

36-有效的数独-官方题解

方法1:一次遍历

思路:

36-有效的数独-一次遍历-思路

代码示例:(Java)

public class Solution1 {
    public boolean isValidSudoku(char[][] board) {
        int[][] rows = new int[9][9];
        int[][] columns = new int[9][9];
        int[][][] subboxes = 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]++;
                    columns[j][index]++;
                    subboxes[i / 3][j / 3][index]++;
                    if (rows[i][index] > 1 || columns[j][index] > 1 || subboxes[i / 3][j / 3][index] > 1) {
                        return false;
                    }
                }
            }
        }
        return true;
    }


}

复杂度分析

  • 时间复杂度:O(1)。数独共有 81 个单元格,只需要对每个单元格遍历一次即可。
  • 空间复杂度:O(1)。由于数独的大小固定,因此哈希表的空间也是固定的。

考察知识点

1.数独

2.二维数组初始化

收获

Gitee源码位置

36-有效的数独-源码

同名文章,已同步发表于CSDN,个人网站,公众号