【leetcode】第36题 Valid Sudoku 题目+解析+代码

来源:互联网 发布:win共享mac桌面 编辑:程序博客网 时间:2024/06/06 09:00

【题目】

Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.

The Sudoku board could be partially filled, where empty cells are filled with the character '.'.


A partially filled sudoku which is valid.

Note:
A valid Sudoku board (partially filled) is not necessarily solvable. Only the filled cells need to be validated.

【解析】

数独的规则大家应该都懂:

每一行只能出现1~9一次;
每一列只能出现1~9一次;
每个3×3子区域只能出现1~9一次(一共有9个子区域)。

【代码】

boolean[][][] occur = new boolean[3][9][9];        for (int i = 0; i < 9; i++){            for (int j = 0; j < 9; j++){                if (board[i][j] == '.') continue;                int num = board[i][j] - '1';                if (occur[0][i][num]) return false;                else occur[0][i][num] = true;                if (occur[1][j][num]) return false;                else occur[1][j][num] = true;                int s = (i / 3) * 3 + j / 3;                if (occur[2][s][num]) return false;                else occur[2][s][num] = true;            }        } return true;


原创粉丝点击