LeetCode【36】有效的数独

题目:
LeetCode【36】有效的数独_第1张图片
思路:
https://blog.51cto.com/u_15072778/3788083

代码:

   public boolean isValidSudoku(char[][] board) {

        // 二维数组第一个标识 0-9行,第二个表示 0-9数字,存的内容boolean 表示第0-9行,0-9这些数字是否有出现过
        boolean[][] row = new boolean[9][9];
        boolean[][] col = new boolean[9][9];
        boolean[][] block = new boolean[9][9];


        for (int i = 0; i < 9; i++) {
            for (int j = 0; j < 9; j++) {
                if (board[i][j] != '.') {
                    int num = board[i][j] - '1';
                    int blockIndex = i / 3 * 3 + j / 3;    // 这里难以理解

                    if (row[i][num] || col[j][num] || block[blockIndex][num]) {
                        return false;
                    } else {
                        row[i][num] = true;
                        col[j][num] = true;
                        block[blockIndex][num] = true;
                    }
                }

            }
        }

        return true;
    }

你可能感兴趣的:(leetcode,算法,职场和发展)