LeetCode : Sudoku Solver [java]
来源:互联网 发布:ai人工智能是什么意思 编辑:程序博客网 时间:2024/06/11 02:12
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.
思路:回溯法,遇到'.'就从1到9尝试,直到找到一个结果,返回。
public class Solution {public void solveSudoku(char[][] board) {solve(board, 0);}public boolean solve(char[][] board, int index) {if (index == 81) {return true;}int row = index / 9;int col = index % 9;if (board[row][col] == '.') {for (int i = 1; i <= 9; i++) {board[row][col] = (char) (i + '0');if (check(board, row, col)) {if (solve(board, index + 1)) {return true;}}board[row][col] = '.';}} else {if (solve(board, index + 1)) {return true;}}return false;}public boolean check(char[][] board, int row, int col) {for (int i = 0; i < 9; i++) {if (board[row][i] == board[row][col] && i != col) {return false;}if (board[i][col] == board[row][col] && i != row) {return false;}}for (int i = (row / 3) * 3; i < (row / 3 + 1) * 3; i++) {for (int j = (col / 3) * 3; j < (col / 3 + 1) * 3; j++) {if ((i != row) && (j != col) && (board[row][col] == board[i][j])) {return false;}}}return true;}}
1 0
- [Leetcode] Sudoku Solver (Java)
- [LeetCode][Java] Sudoku Solver
- LeetCode : Sudoku Solver [java]
- [leetcode-37]Sudoku Solver(java)
- (Java)LeetCode-37. Sudoku Solver
- [leetcode]37. Sudoku Solver@Java解题报告
- 【LeetCode】Valid Sudoku && Sudoku Solver
- [Leetcode]Sudoku Solver&&Valid Sudoku
- leetcode Valid Sudoku & Sudoku Solver
- Leetcode 37 Sudoku Solver
- [Leetcode] Sudoku Solver
- Leetcode 37: Sudoku solver
- LeetCode Sudoku Solver
- [LeetCode]Sudoku Solver
- Leetcode Sudoku Solver
- LeetCode-Sudoku Solver
- LeetCode - Sudoku Solver
- LeetCode:Sudoku Solver
- 成对数据均值差的推断
- centos6、7安装vlc
- 哈希表算法
- PID代码及注释
- SSL 1531 斐波那契数列Ⅳ 矩阵乘法
- LeetCode : Sudoku Solver [java]
- CodeForces - 501B
- 关于蓝桥OJ算法训练之最小乘积(基本型)
- 经典迷宫问题DFS 深度优先
- c语言学习中的杂记
- Candy
- 1025. PAT Ranking (25)
- linux进程间通信——共享内存
- JVM内幕:Java虚拟机详解