LeetCode 36 Sudoku Solver
来源:互联网 发布:js弹出一个window窗口 编辑:程序博客网 时间:2024/05/16 18:03
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:使用暴力DFS
public class Solution {private boolean isValidSudoku(char[][] board, int row, int column) {int i, j;int[] valid1 = new int[10];int[] valid2 = new int[10];int[] valid3 = new int[10];for (i = 0; i <9; i++) {if (board[i][column] != '.') {if (valid1[board[i][column] - '0'] > 0)return false;valid1[board[i][column] - '0']++;}if (board[row][i] != '.') {if (valid2[board[row][i] - '0'] > 0)return false;valid2[board[row][i] - '0']++;}}for (i = (row / 3) * 3; i < (row / 3 + 1) * 3; i++) {for (j = (column / 3) * 3; j < (column / 3 + 1) * 3; j++) {if (board[i][j] != '.') {if (valid3[board[i][j] - '0'] > 0)return false;valid3[board[i][j] - '0']++;}}}return true;}private boolean internalSolveSudoku(char[][] board) {for (int i = 0; i < 9; i++) {for (int j = 0; j < 9; j++) {if (board[i][j] == '.') {for (int k = 1; k <= 9; k++) {board[i][j] = (char) ('0' + k);if (isValidSudoku(board, i, j)) {if (internalSolveSudoku(board)) {return true;}}board[i][j] = '.'; return false;}}}}return true;}public void solveSudoku(char[][] board) {internalSolveSudoku(board);}}思路2:使用Dancing Links,代码后补。
0 0
- Leetcode【36】:Sudoku Solver
- LeetCode 36 Sudoku Solver
- LeetCode 36/37. Valid Sudoku/ Sudoku Solver
- 【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
- 【leetcode】Sudoku Solver
- Leetcode: Sudoku Solver
- leetcode Sudoku Solver
- 优化Android App性能?十大技巧
- 菜鸟运维笔记:安装MySQL,PHP及phpMyAdmin
- HDOJ-2044-一只小蜜蜂【fib数列】
- 牛人和一般人的思维(图)
- 无形的力量,有形的手
- LeetCode 36 Sudoku Solver
- Constant folding 常量折叠
- PHP+SMTP的邮件发送机制
- TBDR缺点
- The absolute uri: http://www.keystudio.com/tags/premission cannot be resolved in either web.xml or t
- hdu 4460 Friend Chains (限制条件的spfa)
- MySQL备份与恢复
- C#toolTip应用
- 把现有Unity3d游戏向Windows Phone 8.1移植(基础原理)