LeetCode OJ:Sudoku Solver(数独游戏)
2024-10-19 13:19:36
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.
dfs,一直寻找,不行返回即可:
class Solution {
public:
void solveSudoku(vector<vector<char>>& board) {
doSudoku(board);
} bool checkValid(vector<vector<char>>&board, int x, int y)
{
for(int i = ; i < ; i++){
if(i!=x)
if(board[i][y] == board[x][y]) return false;
} for(int j = ; j < ; j++){
if(j != y)
if(board[x][j] == board[x][y]) return false;
} for(int i = (x/) * ; i < (x/ + ) * ; ++i){
for(int j = (y/) * ; j < (y/ + ) * ; ++j){
if((i!=x) || (j != y))
if(board[x][y] == board[i][j]) return false;
}
}
return true;
} bool doSudoku(vector<vector<char>> & board)
{
for(int row = ; row < ; ++row){
for(int col = ; col < ; ++col){
if(board[row][col] == '.'){
for(int i = ; i <= ; ++i){
board[row][col] = '' + i;
if(checkValid(board, row, col)){
if(doSudoku(board)){
return true;
}
}
board[row][col] = '.';
}
return false;
}
}
}
return true;
}
};
最新文章
- swift基础一
- 夺命雷公狗ThinkPHP项目之----企业网站27之网站前台单页的完成(从百度编辑器里面取出文章数据)
- C# TcpClient TcpListener 简单练习01
- springMVC找不到JS等文件
- 【转】Android开发中adb启动失败adb连接异常的解决办法 offline
- python 查看文件夹权限组和用OS模块操作文件夹
- C#调用webbrowser,阻止弹出新HTML页面
- [EXTJS5学习笔记]第二十六节 在eclipse/myeclipse中使用sencha extjs的插件
- ActiveMQ的消息持久化机制
- 【alpha阶段】第十次Scrum Meeting
- python 中为什么不需要重载 参数*arg和**args
- 有一个问题关于stl函数中的算法问题
- android library打包成aar形式供别的项目引用
- rails 数据迁移出问题
- Tomcat的overview界面浅析
- Python(文件上传)
- python3编程的一些实用技巧1
- jquery实现 批量右移
- drupal 网址合集
- JVM中的垃圾回收