Leetcode-Sudoku Solver
来源:互联网 发布:js把date转换成字符串 编辑:程序博客网 时间:2024/06/07 07:08
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.
题意:将一个数独补充完整。
解题思路:从第一个空格开始,列出可以填充的数字,依次进行尝试。
bool ss(vector<vector<char>>& b){ int ii = 0; int jj = 0; bool f = false; for (int i = 0; i < b.size(); ++i) { for (int j = 0; j < b[i].size(); ++j) { if (b[i][j] == '.') { ii = i; jj = j; f = true; break; } } if (f) { break; } } if (f) { int a[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; for (int i = 0; i < b[0].size(); ++i) { if (b[ii][i] != '.') { a[b[ii][i] - '0']++; } if (b[i][jj] != '.') { a[b[i][jj] - '0']++; } } int ib = ii / 3; ib=ib*3; int jb = jj / 3; jb=jb*3; for (int i = ib; i < ib + 3; ++i) { for (int j = jb; j < jb + 3; ++j) { if (b[i][j] != '.') { a[b[i][j] - '0']++; } } } for (int i = 1; i < 10; ++i) { if (a[i] == 0) { b[ii][jj] = i + '0'; if (ss(b)) { return true; } else { b[ii][jj] = '.'; } } } return false; } return true;} void solveSudoku(vector<vector<char>>& board) { bool f=ss(board); }
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)
- 关于类的关键词
- Hyperion 的oce创建
- Mac系统中强制删除废纸篓文件
- 栈的应用
- 最小值(划分树)
- Leetcode-Sudoku Solver
- 面向对象编程之异常处理
- 性能分析命令详解
- 2.如何创建Activity,启动下一个activity
- CString中Format函数与格式输入与输出
- iOS开发-MJRefresh 上下拉刷新快速集成
- HashMap遍历的两种方式,推荐使用entrySet()
- 暑假选拔赛02 ---- Ysequence
- [LeetCode][Java] Anagrams