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;
}
};

最新文章

  1. swift基础一
  2. 夺命雷公狗ThinkPHP项目之----企业网站27之网站前台单页的完成(从百度编辑器里面取出文章数据)
  3. C# TcpClient TcpListener 简单练习01
  4. springMVC找不到JS等文件
  5. 【转】Android开发中adb启动失败adb连接异常的解决办法 offline
  6. python 查看文件夹权限组和用OS模块操作文件夹
  7. C#调用webbrowser,阻止弹出新HTML页面
  8. [EXTJS5学习笔记]第二十六节 在eclipse/myeclipse中使用sencha extjs的插件
  9. ActiveMQ的消息持久化机制
  10. 【alpha阶段】第十次Scrum Meeting
  11. python 中为什么不需要重载 参数*arg和**args
  12. 有一个问题关于stl函数中的算法问题
  13. android library打包成aar形式供别的项目引用
  14. rails 数据迁移出问题
  15. Tomcat的overview界面浅析
  16. Python(文件上传)
  17. python3编程的一些实用技巧1
  18. jquery实现 批量右移
  19. drupal 网址合集
  20. JVM中的垃圾回收

热门文章

  1. Windows和Ubuntu双系统
  2. 十八般武艺之 Runloop
  3. 手写Bind
  4. cmd中测试常用到的命令汇总
  5. 设置小窗口Activity
  6. JAVA面试题整理(3)-Spring
  7. SublimeText2 编辑器使用小结
  8. JAVA启动参数整理[转]
  9. 搭建Nginx图片服务器(Linux)
  10. pt-table-sync修复mysql主从不一致的数据