当前位置: 首页 > 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。

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

http://www.dtcms.com/a/31190.html

相关文章:

  • 从零开始玩转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通信与回调函数多线程应用
  • 基于Python+Vue开发的反诈视频宣传管理系统源代码
  • 一文详解U盘启动Legacy/UEFI方式以及GPT/MBR关系
  • MySQL八股学习笔记
  • 回不去的乌托邦
  • 网络通信 之综合布线(Integrated Cabling for Network Communication)
  • MATLAB在投资组合优化中的应用:从基础理论到实践
  • 新品!杰和科技国产化云终端VT32,实现办公“双安全”保障
  • 软件架构设计:架构风格
  • 基于Spring Boot的协同过滤电影推荐系统设计与实现(LW+源码+讲解)
  • C++STL容器之list