美文网首页程序员
力扣 36 有效的数独

力扣 36 有效的数独

作者: zhaojinhui | 来源:发表于2020-07-23 11:30 被阅读0次

题意:给定一个数独的棋盘,判断其是否合法

思路:搜索遍历每一种可能结果,具体解析见代码注释

思想:数组遍历

复杂度:时间O(n2),空间O(1)

class Solution {
    public boolean isValidSudoku(char[][] board) {
        int m = board.length;
        if(m == 0)
            return false;
        int n = board[0].length;
        
        for(int i=0;i<m;i++) {
            for(int j=0;j<n;j++) {
                // 查看每一个数字元素看是否合法
                if(board[i][j] != '.' && invalid(i, j, board)) {
                    return false;
                }
            } 
        }
        return true;
    }
    
    boolean invalid(int i, int j, char[][] board) {
        int m = board.length;
        int n = board[0].length;
        char cur = board[i][j];
        for(int z=0;z<m;z++) {
            // 查每一行是否合法
            if(z != j && board[i][z] == cur) 
                return true;
            // 查每一列是否合法
            if(z != i && board[z][j] == cur)
                return true;
            // 查每一个3元格是否合法
            int curi = i/3 * 3 + z%3;
            int curj = j/3 * 3 + z/3;
            if(curi != i && curj != j && board[curi][curj] == cur)
                return true;
        }
        return false;
    }
}

相关文章

  • 力扣 36 有效的数独

    题意:给定一个数独的棋盘,判断其是否合法 思路:搜索遍历每一种可能结果,具体解析见代码注释 思想:数组遍历 复杂度...

  • 每天一题LeetCode【第27天】

    T36. Valid Sudoku【Medium】 题目 这是一道数独题,如何确定数独有效,参考 数独规则 数独板...

  • Python小白 Leetcode刷题历程 No.36-N

    Python小白 Leetcode刷题历程 No.36-No.40 有效的数独、解数独、外观数列、组合...

  • [leetcode] 36 有效数独

    leetcode 36 Determine if a 9x9 Sudoku board is valid. Onl...

  • 36.有效数独

    利用矩阵来记录是否出现过 以 row[9][9] 为例,第一个是代表第几行,第二个则是代表第几个数,初始化全为0,...

  • Leetcode-36 有效的数独

    36. 有效的数独[https://leetcode-cn.com/problems/valid-sudoku/]...

  • 每天进步一点点【2019.8.24】

    一、有效的数独【leetcode 36】 题目描述:判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经...

  • 《每周一道算法题》(九)有效的数独

    一 题目 36. 有效的数独 判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可...

  • 36.有效的数独

    题目判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 数字 1-9 在每一行...

  • LeetCode 36——有效的数独

    1. 题目 2. 解答 将数独中数字的 ASCII 码值转化到 0-8 之间作为散列值,建立一个散列表,然后分别逐...

网友评论

    本文标题:力扣 36 有效的数独

    本文链接:https://www.haomeiwen.com/subject/vjeclktx.html