A: 回溯法解决,和八皇后一个思路。

用三个二维数组标记数字在行,列,block是否出现过。

    vector<vector<bool>> row;vector<vector<bool>> col;vector<vector<bool>> block;void solveSudoku(vector<vector<char> > &board) {// Start typing your C/C++ solution below// DO NOT write int main() functionrow.clear();col.clear();block.clear();row.resize(9,vector<bool>(9,false));col.resize(9,vector<bool>(9,false));block.resize(9,vector<bool>(9,false));for(int i=0;i<9;i++){for(int j=0;j<9;j++){if(board[i][j]=='.')continue;int num = board[i][j]-'1';row[i][num] = col[j][num] = block[(i/3)*3+j/3][num] = true;}}dfs(0,board);}bool dfs(int pos,vector<vector<char>>& board){while(pos<81&&board[pos/9][pos%9]!='.'){pos++;}if(pos==81) return true;int i = pos/9,j=pos%9;for(int num=0;num<9;num++){if(!row[i][num]&&!col[j][num]&&!block[(i/3)*3+j/3][num]){row[i][num] = col[j][num] = block[(i/3)*3+j/3][num] = true;board[i][j] = num+'1';if(dfs(pos+1,board))return true;board[i][j] = '.';row[i][num] = col[j][num] = block[(i/3)*3+j/3][num] = false;}}return false;}

  

转载于:https://www.cnblogs.com/summer-zhou/p/3347183.html

Sudoku Solver相关推荐

  1. leetcode 36. Valid Sudoku | 37. Sudoku Solver(数独)

    36. Valid Sudoku https://leetcode.com/problems/valid-sudoku/ 题解 class Solution {public boolean isVal ...

  2. 【DFS + backtrack】LeetCode 37. Sudoku Solver

    LeetCode 37. Sudoku Solver Solution1: 转载自花花酱:http://zxi.mytechroad.com/blog/searching/leetcode-37-su ...

  3. LeetCode Sudoku Solver

    Write a program to solve a Sudoku puzzle by filling the empty cells. Empty cells are indicated by th ...

  4. C语言使用递归算法实现Sudoku Solver算法(附完整源码)

    使用递归算法实现Sudoku Solve sudoku 结构体定义 实现以下接口 C语言使用递归算法实现Sudoku Solve算法完整源码(定义,实现,main函数测试) sudoku 结构体定义 ...

  5. LeetCode:Sudoku Solver Valid Sudouku

    其实数独还是我挺喜欢的一个游戏.原来有本数独的书. 其实Sudoku是基于Valid Sudouku.其实一开始有点想太多.基于平常玩数独的经验,有很多解数独的规则.貌似这个人为判断因素比较多. 而且 ...

  6. [LeetCode 37] Sudoku Solver回溯解法

    原题: Write a program to solve a Sudoku puzzle by filling the empty cells.Empty cells are indicated by ...

  7. 37. Sudoku Solver **

    description: 数独 Note: Example: Example 1:Input: [["5","3",".",".& ...

  8. 37. Sudoku Solver

    编写一个程序,通过已填充的空格来解决数独问题. 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次. 数字 1-9 在每一列只能出现一次. 数字 1-9 在每一个以粗实线分隔的 3x3 ...

  9. LeetCode 37. 解数独 Sudoku Solver

    编写一个程序,通过已填充的空格来解决数独问题. 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次. 数字 1-9 在每一列只能出现一次. 数字 1-9 在每一个以粗实线分隔的 3x3 ...

  10. LeetCode Valid Sudoku

    原题链接在这里:https://leetcode.com/problems/valid-sudoku/ 题目: Determine if a Sudoku is valid, according to ...

最新文章

  1. vue过渡和animate.css结合使用
  2. SQLOS 简单任务调度
  3. Tomcat目录结构及Tomcat Server处理一个http请求的过程
  4. 用ASP.NET 重绘TabControl代码
  5. winform窗体 小项目【安装程序】
  6. pythonlauncher是干什么用的_python里launcher是什么
  7. Hihocoder 最近公用祖先三 在线LCA
  8. 新扬天电脑所配USB键盘功能键驱动问题注意事项
  9. Linux实战教学笔记
  10. IT十八掌徐培成第一天笔记
  11. VLAN 划分——基于交换机端口划分VLAN
  12. 树莓派 linux pwm,树莓派驱动开发实战04:PWM呼吸灯
  13. CSS背景颜色之奇技淫巧
  14. 敏捷项目管理传统项目管理的区别
  15. ABE或IBE中属性撤销的寻找最小覆盖集的基本算法
  16. C# 获取每年春节对应的公历日期
  17. 简阳市简阳中学2021年高考成绩查询,四川省简阳中学2021年排名
  18. 福布斯荐75本经商必读
  19. 数据库SQL实战-查找所有员工的last_name和first_name以及对应的dept_name(mysql)
  20. endnote 选择一个导入过滤器_EndNote 的 Filter 简介,操作和基本结构 | 科研动力

热门文章

  1. (五)ThinkPHP实践之Session驱动-TTLSA
  2. 贵安新区生物医学大数据中心揭牌成立
  3. 台湾半导体封测商南茂股东大会通过紫光24亿元入股案
  4. 使用Profile创建第一个Grails+Angular2应用
  5. win7(64位)php5.5-Apache2.4-环境安装
  6. UIAlertView 弹框
  7. ORACLE EXP/IMP的使用详解 (解决9i(window)导入到10G的乱码问题)
  8. 70道经典Android面试题加答案--重要知识点几乎都涉及到了
  9. 使用Mybatis-Generator自动生成entity实体、dao接口以及mapper映射文件
  10. 2021 年 4 月程序员工资统计,这太可怕了……