[leetcode]37. Sudoku Solver@Java解题报告
来源:互联网 发布:网络诈骗彩票套路 编辑:程序博客网 时间:2024/06/07 11:00
https://leetcode.com/problems/sudoku-solver/description/
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.
package go.jacob.day803;/** * 37. Sudoku Solver * @author Jacob * 思路: * 简单地说思路就是循环处理子问题,对于每个格子,带入不同的9个数, * 然后判合法,如果成立就递归继续,结束后把数字设回'.' * */public class Demo1 {/* * 回溯法: * */public void solveSudoku(char[][] board) {if (board == null || board.length == 0)return;solve(board);}private boolean solve(char[][] board) {for (int i = 0; i < board.length; i++) {for (int j = 0; j < board[0].length; j++) {if (board[i][j] == '.') {// 第一个'.'格一定是1-9中间的数for (char c = '1'; c <= '9'; c++) {if (isValid(board, i, j, c)) {board[i][j] = c;if (solve(board))return true;elseboard[i][j] = '.';}}/* * 如果能够运行到这里,说明这个位置不能确定具体的数字 */return false;}}}return true;}// 判断是否是一个正确的数独。方法与leetcode36. Valid Sudoku一致private boolean isValid(char[][] board, int row, int col, char c) {for (int i = 0; i < board.length; i++) {// 判断col列和row行是否满足数独条件if (board[i][col] == c || board[row][i] == c)return false;// 判断九宫格if (board[3 * (row / 3) + i / 3][3 * (col / 3) + i % 3] == c)return false;}return true;}}
阅读全文
0 0
- [leetcode]37. Sudoku Solver@Java解题报告
- [leetcode] 37. Sudoku Solver 解题报告
- [Leetcode] 37. Sudoku Solver 解题报告
- Sudoku Solver解题报告
- (Java)LeetCode-37. Sudoku Solver
- [Leetcode] Sudoku Solver (Java)
- [LeetCode][Java] Sudoku Solver
- LeetCode : Sudoku Solver [java]
- 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
- 一篇文章带你详解 HTTP 协议
- css3文字阴影和盒子阴影
- 啊啊啊啊啊啊
- Qt exe自动拷贝依赖dll
- 升级到Struts 2.3.32问题-struts2校验文件不起作用
- [leetcode]37. Sudoku Solver@Java解题报告
- mysql安装出现error Nr.1045
- 据说可能是面试题!
- Javascript与正则表达式
- javascript 笔记
- 机器学习第四周(二)
- 编译android出现的问题
- python3.5+selenium3.4自动化测试8_selenium框架1.0
- ExtJS中年龄选择组件功能代码