当前位置: 首页 > news >正文

【学习】验证数独的正确性

源于面试的一个问题,在leetcode里也有这道题,参考站内的一篇文章。

首先此问题的分析需要满足三个约束条件:

  1. 每行不能有重复的数
  2. 每列不能有重复的数
  3. 每个3*3的方格中不能有重复的数

其中前两个约束条件都是容易满足的,关键在第三个。
在这里插入图片描述
使用三个与数独相同尺寸的二维数组,作为visited的tag,分别记录行、列和3*3方格的数据。

关键在于上述的16行代码,接下来将详细分析:
首先i / 3 和 j / 3会将当前的位置映射到33小方格里,也即判断当前的数据属于哪个3 * 3小方格(分别表示行和列信息),将其转化为index也即i / 3 * 3 + j / 3。

位操作的方案类似,就是用位操作代替了数组操作从而提高了存储效率。

相关文章:

  • 从零开始玩转TensorFlow:小明的机器学习故事 2
  • [C++ ]使用std::string作为函数参数时的注意事项
  • 【Java 优选算法】位运算
  • Vmware虚拟机Ubantu安装Docker、k8s、kuboard
  • 银行IT治理——安全架构定义
  • 企业组网IP规划与先关协议分析
  • overflow-x: auto 使用鼠标实现横向滚动,区分触摸板和鼠标滚动事件的方法
  • 【自学笔记】Spring Boot框架技术基础知识点总览-持续更新
  • STM32-温湿度上传OneNET项目
  • 机器学习 - 衡量模型的特性
  • 合合信息2025届春季校园招聘全面启动!
  • 深入浅出机器学习:概念、算法与实践
  • 一篇搞懂vue3中如何使用ref、reactive实现响应式数据
  • Vue3+element UI:使用el-dialog时,对话框不出现解决方案
  • Mysql 迁移 dm 数据库
  • ip属地是电话号码吗怎么改
  • 企业知识管理平台重构数字时代知识体系与智能服务网络
  • 利用爬虫精准获取淘宝商品描述:实战案例指南
  • 腾讯云cloudstudio使用笔记(一)
  • ros通信与回调函数多线程应用
  • “朱雀玄武敕令”改名“周乔治华盛顿”?警方称未通过审核
  • 工商银行杭州金融研修院原院长蒋伟被“双开”
  • 问责!美国海军对“杜鲁门”号航母一系列事故展开调查
  • 商务部新闻发言人就出口管制管控名单答记者问
  • 图讯丨习近平出席中国-拉美和加勒比国家共同体论坛第四届部长级会议开幕式
  • 对话郑永年:我们谈判也是为世界争公义