Sudoku Solver
来源:互联网 发布:pdf压缩 for mac 编辑:程序博客网 时间:2024/05/21 09:04
Sudoku Solver
Write a program to solve a Sudoku puzzle by filling the empty cells.
Empty cells are indicated by the character '.'
.
You may assume that there will be only one unique solution.
A sudoku puzzle...
...and its solution numbers marked in red.
Java代码:public class Solution {boolean[][] row = new boolean[9][9];boolean[][] col = new boolean[9][9];boolean[][] blo = new boolean[9][9];public void solveSudoku(char[][] board) { for(int i=0;i<9;i++) for(int j =0;j<9;j++){ int temp =board[i][j]-'1'; if(board[i][j]!='.'){ row[i][temp]=true; col[j][temp]=true; blo[3*(i/3)+j/3][temp]=true; } } solveHelper(0,0,board);}public boolean solveHelper(int i, int j, char[][] board){ if(i==9) return true; if(board[i][j]!='.'){ if(j<8) return solveHelper(i,j+1,board); else return solveHelper(i+1,0,board); }else for(int k =0;k<9;k++){ if(row[i][k]==false&&col[j][k]==false&&blo[3*(i/3)+j/3][k]==false){ board[i][j] = (char)(k+'0'+1); row[i][k]=true; col[j][k]=true; blo[3*(i/3)+j/3][k]=true; if(j<8&&solveHelper(i,j+1,board)) return true; else if(j==8&&solveHelper(i+1,0,board)) return true; else{ board[i][j] = '.'; row[i][k]=false; col[j][k]=false; blo[3*(i/3)+j/3][k]=false; } } } return false;}}
0 0
- Sudoku Solver
- Sudoku Solver
- Sudoku Solver
- Sudoku Solver
- Sudoku Solver
- Sudoku Solver
- Sudoku Solver
- Sudoku Solver
- Sudoku Solver
- Sudoku Solver
- Sudoku Solver
- Sudoku Solver
- Sudoku Solver
- Sudoku Solver
- Sudoku Solver
- Sudoku Solver
- Sudoku Solver
- Sudoku Solver
- Leetcode---Permutations II
- 【Bug解决】attempt to create saveOrUpdate event with null entity
- 面试常考题-TCP三次握手与四次握手
- 黑马程序员——java基础——集合、泛型、反射
- 让用VS2012/VS2013编写的程序在XP中顺利运行
- Sudoku Solver
- Android Studio的离线升级
- 父元素与子iframe相互获取变量和元素对象的具体实现
- 第五周项目1——深复制体验(2)
- Android continuous integration with Jenkins and Docker
- 第六周 项目1-深复制体验(1)
- ADO在C++中的使用
- 宏展开
- 红帽6没有办法上网