LeetCode Sudoku Solver 回溯
来源:互联网 发布:php实现跨域 编辑:程序博客网 时间:2024/05/22 13:54
思路:
DFS。时间复杂度O(9^4),空间复杂度O(1)。
下棋添子,下完一步下另一步,不行就回溯。
class Solution {private: bool isValid(vector<vector<char>> &board, int i, int j) { //check col for(int row = 0; row < 9; ++row) { if(row != i && board[row][j] == board[i][j]) { return false; } } //check row for(int col = 0; col < 9; ++col) { if(col != j && board[i][col] == board[i][j]) { return false; } } //check cube for(int row = i - i%3; row < i + (3 - i%3); ++row) { for(int col = j - j%3; col < j + (3 - j%3); ++col) { if(row == i && col == j) continue; if(board[row][col] == board[i][j]) { return false; } } } return true; } bool dfs(vector<vector<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] = '0' + k; if(isValid(board, i, j) && dfs(board)) { return true; } board[i][j] = '.'; } return false; } } } return true; }public: void solveSudoku(vector<vector<char>>& board) { dfs(board); }};
0 0
- LeetCode Sudoku Solver 回溯
- [LeetCode 37] Sudoku Solver回溯解法
- LeetCode 37. Sudoku Solver--回溯法
- 【回溯法】Sudoku Solver
- LeetCode 37 Sudoku Solver 回溯和深度遍历 还要学习
- LeetCode-37-Sudoku Solver, list转字符串join,回溯
- 【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
- Directional Shadow Details 平行光阴影细节
- 数据库操作中是什么在影响系统的性能
- Xutils的get请求后,总是返回相同数据的问题解决方案
- Nginx负载均衡配置实例详解
- 关于openssl库的链接问题
- LeetCode Sudoku Solver 回溯
- input core输入事件 矩阵键盘 映射 原理分析
- 大端小端
- highcharts如何动态获取数据
- mvc4 部署到win service 2008 r2 报错403
- eclipse tomcat JNdi配置笔记
- 10003---Tomcat建立虚拟主机最佳实践
- mysql必知必会(一)
- 60安全浏览器可以通过指定内核的方式来解决兼容性问题。