题目:有效的数独

代码(C语言)

bool isValidSudoku(char** board, int boardSize, int* boardColSize){int row[9][10] = {0};// 哈希表存储每一行的每个数是否出现过,默认初始情况下,每一行每一个数都没有出现过// 整个board有9行,第二维的维数10是为了让下标有9,和数独中的数字9对应。int col[9][10] = {0};// 存储每一列的每个数是否出现过,默认初始情况下,每一列的每一个数都没有出现过int box[9][10] = {0};// 存储每一个box的每个数是否出现过,默认初始情况下,在每个box中,每个数都没有出现过。整个board有9个box。for(int i=0; i<9; i++){for(int j = 0; j<9; j++){// 遍历到第i行第j列的那个数,我们要判断这个数在其所在的行有没有出现过,// 同时判断这个数在其所在的列有没有出现过// 同时判断这个数在其所在的box中有没有出现过if(board[i][j] == '.') continue;  int curNumber = board[i][j]-'0';if(row[i][curNumber]) return false; if(col[j][curNumber]) return false;if(box[j/3 + (i/3)*3][curNumber]) return false;row[i][curNumber] = 1;// 之前都没出现过,现在出现了,就给它置为1,下次再遇见就能够直接返回false了。col[j][curNumber] = 1;box[j/3 + (i/3)*3][curNumber] = 1;}}return true;}//参考链接:https://leetcode-cn.com/problems/valid-sudoku/solution/36-jiu-an-zhao-cong-zuo-wang-you-cong-shang-wang-x/

力扣:探索初级算法——数组篇——有效的数独相关推荐

  1. LeetCode(力扣)初级算法 字符串篇

    目录 1.反转字符串 2.整数反转 2.1第一版代码 2.2第二版代码 3.字符串中的第一个唯一字符 3.1第一版代码 3.2第二版代码 3.3第三版代码 4.有效的字母异位词 4.1第一版代码 4. ...

  2. LeetCode 探索初级算法-数组:10 有效的数独-20200321

    10 有效的数独-20200321 题目 判断一个 9x9 的数独是否有效.只需要根据以下规则,验证已经填入的数字是否有效即可. 数字 1-9 在每一行只能出现一次. 数字 1-9 在每一列只能出现一 ...

  3. 力扣刷题笔记 数组篇02——双指针(快慢指针)法

    总结先放在前面: 双指针法在数组中是通过使用两个或者多个以上的下标,通过一个快指针和慢指针在一个for循环下完成两个for循环的工作,这样做大幅降低了时间复杂度 题目的类型也比较灵活,一般多用于有序数 ...

  4. [算法]力扣刷题-初级算法 - 数组(三)(数组篇完结) [两数之和] [有效的数独] [旋转图像]

    初级算法 - 数组篇完结: 初级算法 - 数组(一): https://blog.csdn.net/weixin_43854928/article/details/121315702 初级算法 - 数 ...

  5. [力扣刷题总结](双指针篇)

    文章目录 |||||||||||||||||||| 双指针 |||||||||||||||||| 905. 按奇偶排序数组 解法1:双指针+原地交换 解法2:两次遍历+保持相对位置 475. 供暖器 ...

  6. 力扣刷题学习SQL篇——1-8 查询(按日期分组销售产品——利用聚合函数GROUP_CONCAT)

    力扣刷题学习SQL篇--1-8 查询(按日期分组销售产品--利用聚合函数GROUP_CONCAT) 1.题目 2.解法 3.group_concat() 1.题目 题目链接:https://leetc ...

  7. [Golang]力扣Leetcode - 852. 山脉数组的峰顶索引(二分查找)

    [Golang]力扣Leetcode - 852. 山脉数组的峰顶索引(二分查找) 题目:符合下列属性的数组 arr 称为 山脉数组 : arr.length >= 3 存在 i(0 < ...

  8. LeetCode初级算法(数组)解答

    这里记录了LeetCode初级算法中数组的一些题目: 加一 本来想先转成整数,加1后再转回去:耽美想到测试的例子考虑到了这个方法的笨重,所以int类型超了最大范围65536,导致程序出错. class ...

  9. 力扣启蒙 - 开启算法的世界

    点击上方 Java学习之道,选择 设为星标 每天18:30点,干货准时奉上! Part1力扣 刷力扣,刷力扣,力扣究竟是什么呢? 力扣(LeetCode)是领扣网络旗下专注于程序员技术成长和企业技术人 ...

最新文章

  1. 无人出租要遍地,Waymo百度这种报告就得常走起
  2. window.open 弹出居中窗口
  3. python之Queue
  4. matlab2017b修改mesh的着色方案
  5. asp.net core轻松入门之MVC中Options读取配置文件
  6. 【Pytorch神经网络实战案例】27 MaskR-CNN内置模型实现语义分割
  7. c++中outtextxy_第12章 坚持一百秒(《C和C++游戏趣味编程》配套教学视频)
  8. VB将自定义资源中的文件释放出来
  9. asp.net core系列 37 WebAPI 使用OpenAPI (swagger)中间件
  10. Kinetics-600数据集介绍
  11. 多项式拟合,模型的复杂度以及权重的变化
  12. Hadoop的安装和使用
  13. 开源软件清除了“开源”和“商业”之间的障碍——商业软件、开源软件和自由软件的区别
  14. 【吐血整理】Python 常用模块(二):json 模块
  15. 【matlab学习】用matlab编写简单程序(入门)
  16. Badboy提示脚本错误解决方法
  17. 51单片机实战教程基础硬件篇(一 电子元件PCB 封装库设计教程)
  18. 2020计算机专硕考数二的学校,2020考研备考:考研数一、数二、数三哪个最难?...
  19. 创业者必知的互联网思维之屌丝思维
  20. 工龄与薪水的一元线性回归模型-Python Pycharm实现(出现警告)

热门文章

  1. 新型能力的分解与组合
  2. arcengine 加载地图不显示_ArcEngine加载地图
  3. 网易2019年实习生招聘笔试题
  4. pytorch Bus error (core dumped)
  5. 在正式使用计算机账务系统的银行对账功能,会计电算化账务处理系统中,银行对账的功能有哪些? 爱问知识人...
  6. 利用excel录制宏快速拆分填充单元格
  7. IT项目经理的基本条件
  8. jQuery的ready方法实现原理分析
  9. ubuntu 或者虚拟机连接u盘
  10. 《Hello!树先生》简介