leetcode 37. Sudoku Solver
来源:互联网 发布:wemall java版 编辑:程序博客网 时间:2024/05/17 07:21
public class Solution { public static void main(String[] args) {char[][] input = {{'5','3','.','.','7','.','.','.','.'},{'6','.','.','1','9','5','.','.','.'},{'9','8','.','.','.','.','.','6','.'},{'8','.','.','.','6','.','.','.','3'},{'4','.','.','8','.','3','.','.','1'},{'7','.','.','.','2','.','.','.','6'},{'.','6','.','.','.','.','2','8','.'},{'.','.','.','4','1','9','.','.','5'},{'.','.','.','.','8','.','.','7','9'}};solveSudoku(input);}public static void solveSudoku(char[][] board) { solve(board); for(int i = 0;i<9;i++){ for(int j = 0;j<9;j++){ System.out.print(board[i][j]); } System.out.println(); } } public static boolean solve(char[][] board){for(int i = 0;i<9;i++){for(int j = 0;j<9;j++){if(board[i][j] == '.'){for(char m = '1';m<='9';m++){//给'.'的位置按顺序赋1-9的值board[i][j] = m;if(isValid(board,i,j)&&solve(board)){//检查赋值后的矩阵是否合法,并迭代检查到最后是否合法return true;}board[i][j] = '.';}return false;}}}return true;}public static boolean isValid(char[][] board, int row ,int col){//看是否在同行同列同九个格中有相同的值for(int i = 0;i<9;i++){if(i != row && board[i][col] == board[row][col]){return false;}}for(int i = 0;i<9;i++){if(i!=col && board[row][i] == board[row][col]){return false;}}int beginRow = 3*(row/3);int beginCol = 3*(col/3);for(int i = beginRow;i<beginRow+3;i++){for(int j = beginCol;j<beginCol+3;j++){if(i!=row&&j!=col&&board[i][j] == board[row][col]){return false;}}}return true;}}
0 0
- LeetCode --- 37. Sudoku Solver
- LeetCode 37.Sudoku Solver
- [Leetcode] 37. Sudoku Solver
- [leetcode] 37. Sudoku Solver
- Leetcode 37. Sudoku Solver
- leetcode 37. Sudoku Solver
- LeetCode 37. Sudoku Solver
- leetcode.37. Sudoku Solver
- LeetCode-37.Sudoku Solver
- leetcode 37. Sudoku Solver
- (Leetcode)37. Sudoku Solver
- [LeetCode] 37. Sudoku Solver
- leetcode 37.Sudoku Solver
- leetcode 37. Sudoku Solver
- leetcode 37. Sudoku Solver
- leetcode-37. Sudoku Solver
- [LeetCode]37. Sudoku Solver
- leetcode 37. Sudoku Solver
- 【Swift】Runtime动态性分析
- java反射机制
- 带缓存的字节输入输出流
- 煤矿工人成为互联网工程师的故事
- alloc init new的区别
- leetcode 37. Sudoku Solver
- 今天给大家讲个故事
- 近期学习内容顺序
- 支付宝支付
- Mac系统下,Hadoop 2.6.2 + Mahout 0.12.1 完全分布式配置
- webview自适应高度
- 二叉树及其应用--二叉树特征值与销毁
- junit
- Android开发之如何保证Service不被杀掉