java刷题--36有效的数独

Posted Anrys

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java刷题--36有效的数独相关的知识,希望对你有一定的参考价值。

java刷题--36有效的数独

题目

代码

class Solution {
    public boolean isValidSudoku(char[][] board) {
            Set<Character> rowSet = new HashSet<>();
            Set<Character> colSet = new HashSet<>();
            Set<Character> gridSet = new HashSet<>();
            for (int i = 0; i < 9; i++) {
                for (int j = 0; j < 9; j++) {
                    // 行校验
                    if (board[j][i] != '.' && !rowSet.add(board[j][i]))
                        return false;
                    // 列校验
                    if (board[i][j] != '.' && !colSet.add(board[i][j]))
                        return false;
                    // 九宫格校验
                    if (board[i % 3 * 3 + j / 3][i / 3 * 3 + j % 3] != '.' && 
                        !gridSet.add(board[i % 3 * 3 + j / 3][i / 3 * 3 + j % 3])  )
                        return false;
                }
                rowSet.clear();
                colSet.clear();
                gridSet.clear();
            }
            return true;
    }
}

结果

以上是关于java刷题--36有效的数独的主要内容,如果未能解决你的问题,请参考以下文章

java刷题--36有效的数独

[JavaScript 刷题] 矩阵 - 有效的数独, leetcode 36

LeetCode刷题 36 有效的数独

Leetcode刷题100天—36. 有效的数独(数组+哈希)—day26

Leetcode刷题100天—36. 有效的数独(数组+哈希)—day26

刷题笔记(数组)-11