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

news/2025/2/21 2:42:24/

源于面试的一个问题,在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.ppmy.cn/news/1573355.html

相关文章

【Linux】在 ubuntu 18.04 arm 容器中安装ROS环境

在ubuntu18.04arm(docker容器)中安装ROS环境。 1. 简述 由于本人对ROS并不是特别了解,这里就不引入ROS的背景介绍了。 ROS的安装主要基于官网的教程,先选择你当前使用的ubuntu版本对应的ROS,然后根据具体版本的ROS官…

Springboot使用Redis发布订阅自动更新缓存数据源

背景 当项目有很多数据源的时候,通常会在启动的时候就把数据源连接加载缓存上,当数据源进行变更后如何自动实时将缓存的数据源进行更新呢?如果是单个项目直接调接口方法就行了,但是涉及到分布式多个系统呢? 解决方案…

【强化学习的数学原理】第09课-策略梯度方法-笔记

学习资料:bilibili 西湖大学赵世钰老师的【强化学习的数学原理】课程。链接:强化学习的数学原理 西湖大学 赵世钰 文章目录 一、该方法的基本思路二、该方法的目标函数1-Average value二、该方法的目标函数2-Average reward三、目标函数的梯度计算四、梯…

云贝餐饮连锁V3独立版全开源+vue源码

一.介绍 云贝餐饮连锁V3独立版,作为一款全开源、全插件的源码部署系统,其在餐饮行业软件系统中独树一帜。该系统不仅功能全面,涵盖了餐饮连锁企业的日常运营、财务管理、库存管理、会员管理等多个方面,而且框架结构清晰&#xff…

《Ollama 与 DeepSeek 整合应用入门指南》一、二、三章

第一章:工具概述与核心价值 1.1 Ollama 技术解析 本地化部署优势:无需网络连接的数据隐私保护 跨平台架构设计:支持Windows/macOS/Linux全平台 模型管理引擎:自动化处理模型依赖与版本控制 1.2 DeepSeek 模型特性 多模态处理…

[代码调试]安装Text2Image(stable diffusion)模型环境的踩坑记录

文章目录 一、xFormers版本问题1、先确认下自己torch版本所对应的cuda版本2.安装对应版本(1) 到对应官网下载包本地安装(2)代码安装 二、attn_mask尺寸错误三、diffusers四、Huggingface 配置基于stable diffusion预训练模型的环境,记录踩坑记录 一、xFormers版本问…

springcloud集成gateway

本篇文章只介绍gateway模块的搭建步骤,并无gateway详细介绍 gateway详解请查看:SpringCloudGateway官方文档详解 前置处理 父模块中已指定版本 不知道如何选择版本看这篇: 手把手教你梳理springcloud与springboot与springcloudalibaba的版本…

AI角色扮演聊天前端SillyTavern

本文软件由网友 P家单推人 推荐 简介 什么是 SillyTavern ? SillyTavern 是一个可以安装在电脑(和安卓手机)上的用户界面,让您可以与文本生成的人工智能互动,并与您或社区创建的角色聊天/玩角色扮演游戏。 主要特点 …