30 有效的数独

https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/1/array/30/

写一下题目吧

判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。

  1. 数字 1-9 在每一行只能出现一次。
  2. 数字 1-9 在每一列只能出现一次。
  3. 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。

上图是一个部分填充的有效的数独。

数独部分空格内已填入了数字,空白格用 '.' 表示。

翻译一下这道题目的条件:

  1. 同样的i下标里不能有两个相同的数,
  2. 同样的j坐标里不能有两个相同的数,
  3. i/3,j/3的值相同的这个范围里,也不能有两个相同的数。

我觉得根据数字比较下标会是一个比较省心且直观的方式。

遍历数组,把所有的有数字的格子的坐标都保存下来,

由于这题的数字是0-9,正好也省去了我们用hashmap的麻烦,直接用个数组搞定。

再次遍历数组.....等等,用不着啊,在第一次遍历的时候直接就可以判断起来了。

假如有当前数字的坐标记录,就去比较一下是否满足条件。假如没有当前数字的坐标记录,就把当前坐标存下来,继续遍历。

一旦发现不合规的,就返回false,结束循环,妥妥的。

# @param {Character[][]} board
# @return {Boolean}
def is_valid_sudoku(board)i=0j=0rec = []hash = {}for i in 0..8 for j in 0..8next if board[i][j]=='.'                  r = rec[board[i][j].to_i]if r                     r.each_with_index do |e, idx|x,y = e[0],e[1]if x==i||y==j||(x/3==i/3 && y/3==j/3)return falseendendr.push [i,j] elserec[board[i][j].to_i] = [[i,j]]end             endendreturn true
end

[LeetCode][算法初级][数组] 30 有效的数独相关推荐

  1. Leetcode算法Java全解答--37. 解数独

    Leetcode算法Java全解答–37. 解数独 文章目录 Leetcode算法Java全解答--37. 解数独 题目 想法 结果 总结 代码 我的答案 大佬们的答案 测试用例 其他 题目 编写一个 ...

  2. 【算法-初级-数组】两数之和(JavaScript实现)

    [算法-初级-数组]两数之和(JavaScript实现) 博客说明 文章所涉及的部分资料来自互联网整理,当然还有自己个人的总结和看法,分享的目的在于共建社区和巩固自己.引用的资料如有侵权,请联系本人删 ...

  3. LeetCode初级算法之数组:36 有效数独

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

  4. LeetCode算法练习-数组篇

    从排序数组中删除重复项 给定一个排序数组,你需要在原地(原地算法)删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度.不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) ...

  5. leetcode算法题--数组中两个数的最大异或值

    原题链接:https://leetcode-cn.com/problems/maximum-xor-of-two-numbers-in-an-array/ 1.方法一:暴力法 func findMax ...

  6. leetcode算法题--数组中数字出现的次数 II

    原题链接:https://leetcode-cn.com/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-ii-lcof/ int singleNumb ...

  7. leetcode算法题--数组中数字出现的次数

    原题链接:https://leetcode-cn.com/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-lcof/ vector<int> ...

  8. leetcode算法题--数组中出现次数超过一半的数字

    原题链接:https://leetcode-cn.com/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban-de-shu-zi-lcof/ i ...

  9. leetcode算法题--数组中重复的数字

    原文链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/ int findRepeatNumber(vec ...

最新文章

  1. R语言使用ggplot2包的快速可视化函数qplot绘制密度图(主题、轴标签设置)实战
  2. 攀枝花市大数据中心落户东区
  3. 快速入门:十分钟学会Python
  4. python3猜数字小游戏代码示例
  5. oracel 数据库问题 ORA-12547 ORA-12571
  6. 浅谈MySQL存储引擎选择 InnoDB还是MyISAM
  7. loadrunner脚本中关于httpCode401特殊情况
  8. .Net读取Excel的数据类型不统一获取空值问题
  9. 大势至服务器共享文件监控软件8.6,大势至服务器共享文件夹监控软件、局域网共享管理软件、局域网共享设置软件...
  10. 输出今天是星期几并计算n天后的日期(万年历)
  11. C++ sort函数(升序降序排列)
  12. Android 9.0 蓝牙通讯录 BluetoothPbapClient
  13. 2021 GitHub年度排行榜出炉!中文Top3项目诞生!
  14. 交通期刊JCR(2020)
  15. 扇贝编程python广告演员_‎扇贝编程-人人能学会的python课 az App Store-ban
  16. JQuery实现图片点击放大
  17. 电子变压器的设计工艺重不重要?
  18. 微信小程序开发中调用button组件添加微信客服功能
  19. 更新文件服务器,文件更新服务器
  20. 惠而浦扫地机器人充不进电_惠而浦和西屋诉说不要被廉价欺骗 | 智能扫地机器人评测...

热门文章

  1. C嵌入式编程设计模式
  2. 【小程序开发之微信登录】
  3. 声纹、语音识别入门书籍推荐
  4. swash编译安装教程
  5. 软件项目管理作业(一)
  6. 解题:POI 2008 Plot purchase
  7. 成功解决 failing shard [AccessControlException[access denied (“java.io.FilePermission“
  8. 树莓派控制3631AS数码管 驱动 python程序 共阴数码管|徐奥雯编写|XUAOWEN
  9. 用支付宝如何自己拍证件照?
  10. PHP使用文字检索,关键词查询,分词查询