LeetCode题解——Sudoku Solver
来源:互联网 发布:php的memcache 编辑:程序博客网 时间:2024/05/24 06:22
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...
class Solution {public: bool col[10][10],row[10][10],f[10][10]; bool flage=false; void solveSudoku(vector<vector<char>>& board) { memset(col,false,sizeof(col)); memset(row,false,sizeof(row)); memset(f,false,sizeof(f)); for(int i=0; i<9; i++){ for(int j=0; j<9; j++){ if(board[i][j]!='.'){ int num=board[i][j]-'0'; int k = (i/3)*3+j/3; row[i][num]=col[j][num]=f[k][num]=true; } } } dfs(board,0,0); } void dfs(vector<vector<char>>& board,int i,int j){ if(flage) return; if(i>=9){ flage=true; return;} if(board[i][j]!='.'){ if(j<8) dfs(board,i,j+1); else dfs(board,i+1,0); if(flage) return; } else{ int k = (i/3)*3+j/3; for(int n=1;n<=9;n++){ if(!row[i][n] && !col[j][n] && !f[k][n]){ board[i][j]='0'+n; row[i][n]=col[j][n]=f[k][n]=true; if(j<8) dfs(board,i,j+1); else dfs(board,i+1,0); if(flage) return; row[i][n]=col[j][n]=f[k][n]=false;//一次尝试失败,重置,回溯 } } board[i][j]='.';//当所有尝试都失败时,重置,回溯 } }};
0 0
- LeetCode题解——Sudoku Solver
- LeetCode —— Sudoku Solver
- LeetCode—37.Sudoku Solver
- leetcode 037 —— Sudoku Solver
- leetcode题集——sudoku-solver
- LeetCode ——37. Sudoku Solver
- LeetCode 题解(109): Sudoku Solver
- leetcode题解c++ | 37. 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
- 多线程的wait和notify协同工作
- java子类实例初始化过程
- Git 学习
- C++类
- java基础之Gui编程和反射
- LeetCode题解——Sudoku Solver
- libGDX执行DesktopLauncher提示Couldn't load file: badlogic.jpg
- 南大软院大神养成计划-css布局
- C-020.变量的修饰符 short、long、longlong、unsigned
- FreeRTOS系列第6篇---FreeRTOS内核配置说明
- 数据库表由编码latin1_swedish_ci插入到另一张UTF-8的编码的表中
- NEUQOJ 题目1496 田鼠看热闹(Ⅱ)(线段树,约瑟夫)
- HelloBlog
- android studio导入eclipse项目方式及相关问题解决办法