首页 > 代码库 > 37. Sudoku Solver
37. Sudoku Solver
一、题目
1、描述
2、题意
根据数独规则添加数独缺失的元素
二、解答
1、思路:
回溯
// 37. Sudoku Solver public void solveSudoku(char[][] board) { helper(board); } private boolean helper(char[][] board) { for(int row = 0; row < 9; row++) { for(int col = 0; col < 9; col++) { if(board[row][col] == ‘.‘) { for(char i = ‘1‘; i <= ‘9‘; i++) { board[row][col] = i; if(isValidSudoku(board, row, col) && helper(board)) return true; // 还原 board[row][col] = ‘.‘; } return false; } } } return true; } public boolean isValidSudoku(char[][] board, int row, int col) { for(int i = 0; i < 9; i++) { if(i != col && board[row][i] == board[row][col]) // row return false; if(i != row && board[i][col] == board[row][col]) // colume return false; if(board[row / 3 * 3 + i / 3][col / 3 * 3 + i % 3] != ‘.‘ && board[row / 3 * 3 + i / 3][col / 3 * 3 + i % 3] == board[row][col]) // cube return false; } return true; }
37. Sudoku Solver
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。