题意:解数独,空缺的方格用.表示。

解法:就是典型的回溯法,用row[i][j],column[i][j],grid[i][j]表示i行,i列,i格j是否用。用flag表示当前是否有解。若有解,则不用再递归下去。可能是leetCode里Hard的题目当中最简单的一题了。

代码:

class Solution {
public:int row[9][10];int column[9][10];int grid[9][10];int flag=0;void solve(int r,int c,vector<vector<char>>& board){int i;if(r==9){flag=1;return;}if(board[r][c]=='.'){for(i=1;i<=9;i++){if(row[r][i]==0&&column[c][i]==0&&grid[3*(r/3)+c/3][i]==0){board[r][c]=i+'0';row[r][i]=1;column[c][i]=1;grid[3*(r/3)+c/3][i]=1;if(c==8) solve(r+1,0,board);else solve(r,c+1,board);if(flag==1) return;board[r][c]='.';row[r][i]=0;column[c][i]=0;grid[3*(r/3)+c/3][i]=0;}}}else{if(c==8) solve(r+1,0,board);else solve(r,c+1,board);}}void solveSudoku(vector<vector<char>>& board) {int i,j,k;for(i=0;i<9;i++){for(j=0;j<10;j++)row[i][j]=column[i][j]=grid[i][j]=0;}for(i=0;i<9;i++){for(j=0;j<9;j++){if(board[i][j]!='.'){k=board[i][j]-'0';row[i][k]=1;column[j][k]=1;grid[(i/3)*3+j/3][k]=1;}}}solve(0,0,board);}
};

【无聊刷题】leetCode之解数独相关推荐

  1. LeetCode刷题——36.有效的数独

    文章目录 面试刷题第二天 LeetCode刷题--36.有效的数独 1.题目描述 2.解题思路(一) 3.解题思路(二) 面试刷题第二天 LeetCode刷题--36.有效的数独 1.题目描述 请你判 ...

  2. 代码随想录刷题|LeetCode 332.重新安排行程 51. N皇后 37. 解数独

    目录 332.重新安排行程 思路 重新安排行程 51. N皇后 思路 N皇后 37. 解数独 思路 解数独         这三道题目都是困难题目,都是根据代码随想录的思路总结书写,慢慢理解,慢慢熟练 ...

  3. 面试刷题LeetCode经典100道

    准备面试刷题,100道经典LeetCode题目奉上. 题号 英文题名 中文题名 难度 likes 数 标签 1 Two Sum 两数之和 Easy 11712 数组,哈希表 2 Add Two Num ...

  4. Java实现 LeetCode 37 解数独

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

  5. 不止是刷题——leetcode笑死人的评论合集,独乐乐不如众乐乐~~

    最近一直在leetcode上刷题,爱学习的我发现了评论区里不只有答疑解惑的大神们,还潜伏着众多神兽和段子手们,截图出来,与诸君共享,程序猿的乐趣不是一般人能懂得~~ --本文由非正经程序猿吴向深独家撰 ...

  6. 无聊之作:Karry解数独程序

    2018/4/13 蒟蒻Liukairui在晚自习上写英语完型... 坐在后面的学霸WSL居然在写数独.... 班主任推门而入,没收了一个P3... 走到学霸WSL旁边,WSL居然还在玩数独... 原 ...

  7. LeetCode—37. 解数独(困难)

    37. 解数独(困难) 题目描述: 编写一个程序,通过填充空格来解决数独问题. 数独的解法需 遵循如下规则: 数字 1-9 在每一行只能出现一次. 数字 1-9 在每一列只能出现一次. 数字 1-9 ...

  8. 【leetcode】解数独

    文章目录 topic 思路 1. 判断数独是否有效 2. 解数独 代码 topic 编写一个程序,通过已填充的空格来解决数独问题. 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次. ...

  9. LeetCode刷题|36有效的数独

    这道题是官方编辑的初级算法中数组部分的一个题目,是一道中等难度的题.首先还是先看一下题目描述吧. 题目地址:有效的数独 数独大家都很熟悉,简单来讲这个题目就是要让我们写一个程序判断这个数独是不是合法的 ...

最新文章

  1. 几道 BAT 算法面试中经常问的「字符串」问题
  2. js中对函数设置默认参数值的3种方法
  3. 准爸爸日记——20120311
  4. 读书 | IT人如何直击本质洞察底层逻辑?
  5. PHP网站后台角色权限管理系统源码
  6. 使用Tool Bar切换视图
  7. Python学习笔记之元组
  8. Java Integer类中的parseInt和valueOf的区别
  9. error LNK2019: unresolved external symbol “__declspec(dllimport) public: __thiscall 的解决方案
  10. ASP.NET修改文件夹名称
  11. MyCat基于MySQL实现读写分离
  12. Vue实现登录记住密码
  13. C语言基础视频教程-欧阳坚-专题视频课程
  14. 微信app支付 服务器接口,iOS微信支付——APP调用微信支付接口
  15. 锚具ovm是什么意思_OVM锚具资料
  16. Java方法工厂,接口,常用日期类Date面向对象,匿名内部类局部类
  17. 【项目实战】---商品详情页的制作
  18. 决策树和 K 近邻分类
  19. numpy/pandas 10min了解pandas
  20. 牛客小白月赛19A:「水」滔天巨浪

热门文章

  1. Jsp标签中foreach使用
  2. 实现 swiper 的左右箭头放到外面,定制箭头的样式
  3. 西门子1200 压力PID调节实操
  4. android解锁动画效果,Android 5秒学会使用手势解锁功能
  5. unrealengine(UE4)使用Datasmith导出插件
  6. 快速登录Linux:一步取消密码,一步取消锁屏
  7. QQ号码邮箱采集浏览器插件,适合Chrome和360极速浏览器
  8. 调焦后焦实现不同距离成像_望远镜调焦系统及方法与流程
  9. M312: Diagnostics and Debugging chapter 2 Tooling Overview学习记录
  10. 985中国海洋大学成立信息学部,包含计算机/软件学院!