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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/971809.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

进阶——第十六届蓝桥杯嵌入式熟练度练习(eeprom的读写)

在MX中开启PB6,PB7 读函数 uint8_t eeprom_read(uint8_t addr) {I2CStart();I2CSendByte(0xa0);I2CWaitAck();I2CSendByte(addr);I2CWaitAck();I2CStart();I2CSendByte(0xa1);I2CWaitAck();dataI2CReceiveByte();I2CSendNotAck();I2CStop();return data; } 写函数 void eep…

哈希表(C语言版)

文章目录 哈希表原理实现(无自动扩容功能)代码运行结果 分析应用 哈希表 如何统计一段文本中,小写字母出现的次数? 显然,我们可以用数组 int table[26] 来存储每个小写字母出现的次数,而且这样处理,效率奇高。假如我们想知道字…

Java 富文本编辑器

所有桌面工具包都提供文本编辑控件,范围从最基础的到更高级的选项。但富文本编辑呢?是否有控件允许用户格式化文本并添加图片?有没有可以在 Java 应用程序中使用的 WYSIWYG 编辑器? 在本文中,我们将探讨如何使用 JxBr…

几道常见的链表算法题

1. 两数相加 题目描述 Leetcode:给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例: 输入:…

STM32——HAL库开发笔记20(定时器1—时基单元)(参考来源:b站铁头山羊)

一、定义 单片机中的定时器(Timer)是一a个非常重要的外设模块,用于生成精确的时间延迟、测量时间间隔、产生PWM信号等。定时器的核心是一个计数器,它通过对时钟信号进行计数来实现时间相关的功能。 时钟树为定时器提供时钟信号&…

字符串操作总结(C# and Lua)

C# 获取字符串长度 字符串拼接 替换字符串 分割字符串 截取字符串 判断子串是否存在 转大写字母 转小写字母 剔除空白符 首尾匹配 查找索引 插入字符串 Lua 声明字符串 获取字符串长度 例子 :local str "123abc我" 长度 #str 9 string.len(str) …

ComfyUI的安装

ComfyUI的安装 1、访问官网进行下载 https://github.com/comfyanonymous/ComfyUI 2、下载完成后解压、双击运行run_nvidia_gpu.bat 3、进入主页面,可以开始玩耍了

新数据结构(11)——Java类的产生和反射

反射是获取类信息的一种能力 类信息包括属性、方法、构造器、父类、接口等 类信息的来源 来自类的加载器,这是从.class文件到内存中的java虚拟器(JVM)中间的一个阶段(如下图) 类的加载器里,用Field数组存…

DeepSeek横空出世,真的拯救了算力焦虑吗?

目录 DeepSeek横空出世,真的拯救了算力焦虑吗? 一、为什么会有算力焦虑 二、来自硅谷四大科技巨头的决策 1、Deepseek在24年底的突然崛起 2、利好算力的大背景下,硅谷四大科技巨头的“落后”加码 3、在算法博弈中加强算力基建的战略 三…

VSCode Error Lens插件介绍(代码静态检查与提示工具)(vscode插件)

文章目录 VSCode Error Lens 插件介绍**功能概述****开发背景****使用方法****适用场景** VSCode Error Lens 插件介绍 功能概述 Error Lens 是一款增强 VS Code 错误提示的扩展工具,通过 内联显示错误和警告信息,直接定位代码问题,提升开发…

网络安全攻防演练——RT实战技巧篇

前言 又是一年hw招聘季,每年hw行动都会吸引大量网络安全从业者参加。同时也会有很多热爱网络安全但无从下手的网安爱好者参与。笔者旨在对网络安全有想法但是没有方向的师傅做一个简单的方向的了解,让师傅有方向去学习。 RT(红队) 1.引入 首先红队的…

[Android] 【汽车OBD软件】Torque Pro (OBD 2 Car)

[Android] 【汽车OBD软件】Torque Pro (OBD 2 & Car) 链接:https://pan.xunlei.com/s/VOIyKOKHBR-2XTUy6oy9A91yA1?pwdm5jm# 获取 OBD 故障代码、汽车性能数据等等。Torque 使用连接到您的 OBD2 发动机管理/ECU 的 OBD II 蓝牙适配器。…

拯救者电脑在重装系统之后电源计划丢失Fn+Q切换不了模式怎么恢复?

参考联想知识库的一下链接: https://iknow.lenovo.com.cn/detail/196192 其中下载的解压文件后的文件需要复制粘贴到D盘的根目录下,再来运行文件。若在生成的log文件中看到导入成功以及控制面板中看到已添加的电源计划即可 如果还是无效可是试试以下的…

sql盲注脚本

在sqli-labs中的第8题无回显可以尝试盲注的手法获取数据 发现页面加载了3秒左右可以进行盲注 布尔盲注数据库名 import requestsdef inject_database(url):datanamefor i in range(1,15):low 32high 128mid (low high) // 2while low < high:path "id1 and asci…

Linux下学【MySQL】常用函数助你成为数据库大师~(配sql+实操图+案例巩固 通俗易懂版~)

绪论​ 每日激励&#xff1a;“唯有努力&#xff0c;才能进步” 绪论​&#xff1a; 本章是MySQL中常见的函数&#xff0c;利用好函数能很大的帮助我们提高MySQL使用效率&#xff0c;也能很好处理一些情况&#xff0c;如字符串的拼接&#xff0c;字符串的获取&#xff0c;进制…

Linux(centos)系统安装部署MySQL8.0数据库(GLIBC版本)

安装前检查服务器glibc版本&#xff0c;下载对应版本包 rpm -qa | grep glibc mysql安装包及依赖包已整理好&#xff0c;下载地址&#xff1a;https://pan.quark.cn/s/3137acc814c0&#xff0c;下载即可安装 一、下载MySQL mysql安装包及依赖包已整理好&#xff0c;下载地址…

Java基于 SpringBoot+Vue的微信小程序跑腿平台V2.0(附源码,文档)

博主介绍&#xff1a;✌Java徐师兄、7年大厂程序员经历。全网粉丝13w、csdn博客专家、掘金/华为云等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb; 不…

git版本控制工具介绍

版本控制 版本控制是软件开发过程中用于管理代码变更的重要手段&#xff0c;它可以记录代码的历史版本&#xff0c;方便开发者进行回溯、协作和问题排查。本地版本控制、集中版本控制和分布式版本控制是三种不同的版本控制模式 本地版本控制 本地版本控制是最基础的版本控制方…

深入解析 vLLM:高性能 LLM 服务框架的架构之美(二)调度管理

深入解析 vLLM&#xff1a;高性能 LLM 服务框架的架构之美&#xff08;一&#xff09;原理与解析 深入解析 vLLM&#xff1a;高性能 LLM 服务框架的架构之美&#xff08;二&#xff09;调度管理 1. vLLM 调度器结构与主要组件 在 vLLM 中&#xff0c;调度器的结构设计围绕任务…

重构测试项目为spring+springMVC+Mybatis框架

重构测试项目为springspringMVCMybatis框架 背景 继上次将自动化测试时的医药管理信息系统项目用idea运行成功后&#xff0c;由于项目结构有些乱&#xff0c;一部分代码好像也重复&#xff0c;于是打算重新重构以下该项目&#xff0c;这次先使用springspringMVCMybatis框架 …