Valid Sudoku
来源:互联网 发布:科研数据采集和管理 编辑:程序博客网 时间:2024/05/11 14:44
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.
检查每一行,每一列,每一个3*3matrix是否有重复数字。
public boolean isValidSudoku(char[][] board) {for(int i=0;i<9;i++){boolean[] bn=new boolean[9];for(int j=0;j<9;j++){if(board[i][j]!='.'){if(bn[(int)board[i][j]-'1'])return false;bn[(int)board[i][j]-'1']=true;}}}for(int j=0;j<9;j++){boolean[] bn=new boolean[9];for(int i=0;i<9;i++){if(board[i][j]!='.'){if(bn[(int)board[i][j]-'1'])return false;bn[(int)board[i][j]-'1']=true;}}}for(int k=0;k<9;k++){for(int i=k/3*3;i<k/3*3+3;i++){boolean[] bn=new boolean[9];for(int j=k%3*3;j<k%3*3+3;j++){if(board[i][j]!='.'){if(bn[(int)board[i][j]-'1'])return false;bn[(int)board[i][j]-'1']=true;}}}}return true;}简化的方法:
public boolean isValidSudoku2(char[][] board) {boolean[][] rows=new boolean[9][9];boolean[][] cols=new boolean[9][9];boolean[][] blocks=new boolean[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(rows[i][num] || cols[j][num] || blocks[i - i%3 + j/3][num]) return false; rows[i][num] = cols[j][num] = blocks[i - i%3 + j/3][num] = true; } return true;}
0 0
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- 解压、重命名、删除压缩包工具类
- ruby环境sass编译中文出现Syntax error: Invalid GBK character错误解决方法
- ios基本概念学习
- 虚拟机连接上网
- 大白话系列之C#委托与事件讲解(一)
- Valid Sudoku
- mybatis(六)——mybatis调用存储过程
- static关键字详解——static与非static的区别
- 持久化API(JPA)系列(三)实体Bean的开发技术-建立与数据库的连接
- HTTP 协议漫谈
- 用网线直连的两台PC上的虚拟机通过网线通信的配置
- HDU 4310 Hero
- 使用Jsoup 抓取页面的数据
- node.js 入门示例