#leetcode#Valid Sudoku
来源:互联网 发布:java 服务器监控 编辑:程序博客网 时间:2024/06/01 08:26
参考了Code Ganker大神的思路,
http://blog.csdn.net/linhuanmars/article/details/20748171
brute force, validate row by row, column by column, then 9 sub-boxes of the grid.
public boolean isValidSudoku(char[][] board) { if(board==null || board.length!=9 || board[0].length!=9) return false; for(int i=0;i<9;i++) { boolean[] map = new boolean[9]; for(int j=0;j<9;j++) { if(board[i][j] != '.') { if(map[(int)(board[i][j]-'1')]) { return false; } map[(int)(board[i][j]-'1')] = true; } } } for(int j=0;j<9;j++) { boolean[] map = new boolean[9]; for(int i=0;i<9;i++) { if(board[i][j] != '.') { if(map[(int)(board[i][j]-'1')]) { return false; } map[(int)(board[i][j]-'1')] = true; } } } for(int block=0;block<9;block++) { boolean[] map = new boolean[9]; for(int i=block/3*3;i<block/3*3+3;i++) { for(int j=block%3*3;j<block%3*3+3;j++) { if(board[i][j] != '.') { if(map[(int)(board[i][j]-'1')]) { return false; } map[(int)(board[i][j]-'1')] = true; } } } } return true;}
对于这9个小方格的检验, 起初没看明白下面这段是怎么对应各个小方格的。
for(int block=0;block<9;block++) { boolean[] map = new boolean[9]; for(int i=block/3*3;i<block/3*3+3;i++) { for(int j=block%3*3;j<block%3*3+3;j++) {
block 0 12345678i0, 1, 20, 1, 20, 1, 23, 4, 53, 4, 53, 4, 56, 7, 86, 7, 86, 7, 8j0, 1, 23, 4, 56, 7, 80, 1, 23, 4, 56, 7, 80, 1, 23, 4, 56, 7, 8
上表中每一列下标组合成一个小方格
0 0
- 【LeetCode】Valid Sudoku && Sudoku Solver
- [Leetcode]Sudoku Solver&&Valid Sudoku
- leetcode Valid Sudoku & Sudoku Solver
- LeetCode : Valid Sudoku
- [LeetCode]Valid Sudoku
- [leetcode] Valid Sudoku
- LeetCode-Valid Sudoku
- LeetCode Valid Sudoku
- LeetCode - Valid Sudoku
- LeetCode:Valid Sudoku
- leetcode-036:Valid Sudoku
- Leetcode: Valid Sudoku
- LeetCode题解:Valid Sudoku
- 【LeetCode】 Valid Sudoku
- Leetcode Valid Sudoku
- LeetCode | Valid Sudoku
- LeetCode Valid Sudoku
- [Leetcode] Valid Sudoku (Java)
- 【SICP练习】144 练习3.82
- Linux学习之CentOS(七)--CentOS下j2ee环境搭建
- 第四周 项目四 指向学生类的指针
- matlab IO
- Mysql错误消息 语言设置
- #leetcode#Valid Sudoku
- hdu1541 Stars 树状数组水题
- 输出一个数字各个位数和
- 常见HTTP状态(304,503)
- Python学习笔记 函数
- 解决 越狱后ios 密码丢失的问题
- Josephus约瑟环问题
- IOI2014题解
- 单链表多成员的插入、删除、查找、打印