LeetCode---Sudoku Solver
来源:互联网 发布:域名备案被别人注册 编辑:程序博客网 时间:2024/06/05 11:02
题目大意:编写一个程序解决数独问题,要求填满表中的空白位置,使得其所在的行和列以及所在的宫没有相同元素。
算法思想:
1.遍历该表格,寻找空白位置。
2.对于每个空白位置,枚举放置1~9这9个数字,并判断是否有效且递归深搜。
3.还原空白位置。
4。如果此时没有可行方案返回false
5.遍历完表格返回真。
代码如下:
class Solution {public:bool solveSudoku(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 = 0; k < 9;++k){board[i][j] = k +'1';if (isValid(board, i, j) && solveSudoku(board))return true; board[i][j] ='.';} return false;}}}return true;}private:bool isValid(vector<vector<char> >&board,int x,int y){for (int i = 0; i < 9;++i)if (i != x&&board[i][y] == board[x][y])return false;for (int j = 0; j < 9;++j)if (j != y&&board[x][j] == board[x][y])return false;for (int i = 3 * (x / 3); i < 3 * (x / 3 + 1);++i){for (int j = 3 * (y / 3); j < 3 * (y / 3 + 1);++j){if ((i != x || j != y) && board[x][y]==board[i][j])return false;}}return true;}};
0 0
- 【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
- LeetCode | Sudoku Solver
- LeetCode Sudoku Solver
- [Leetcode] Sudoku Solver (Java)
- 指针-数组逆序
- easyui datagrid 多列排序,该如何处理[多列同时order,只针对某一列order]
- Android开发笔记(二十七)对象序列化
- jsp页面,给下拉列表自动选中指定的选项
- String MVC @RequestParam(required=false) int XXX 参数为空报错解决方法
- LeetCode---Sudoku Solver
- Appdelegate里面跳转页面
- 如何反编译360 apk文件
- iOS获取网络图片的宽、高
- 行为型:设计模式之观察者模式(十九)
- 基于@Aspect的AOP配置
- java接口用法:向上转型和接口回调
- 通过androidStudio给apk签名
- dedecms文章页调用地址(当前文章URL)如何操作?