发布时间:2026/6/20 0:10:31
有效的数独
一.题目36. 有效的数独 - 力扣LeetCode二.思路讲解2.1 审题数独的规则很简单在9×9的棋盘上每一行、每一列以及每一个3×3的九宫格内数字1-9只能出现一次。题目要求我们判断给定的部分填充棋盘是否满足这些规则空白用.表示。由于需要快速判断某个数字是否在对应区域出现过很自然地会想到用哈希表来记录。2.2 思路讲解我们需要分别检查行、列和九宫格因此可以用三个二维布尔数组或哈希表来记录数字是否已出现行row[9][10]row[i][num]表示第i行中数字num是否已经出现过。列col[9][10]col[j][num]表示第j列中数字num是否已经出现过。九宫格九宫格有 9 个每个格子可用(i/3, j/3)定位。遍历整个棋盘对于每个非.的数字num分别检查在对应行、列、宫中是否已被标记如果任一已标记则返回false。否则将三个位置都标记为已出现。三.代码演示class Solution { public: int row[9][10];//行 int col[9][10];//列 int grid[3][3][10];//九宫格 bool isValidSudoku(vectorvectorchar board) { for(int i 0;i 9;i) { for(int j 0;j 9;j) { char num board[i][j];//获取一个格子的元素 //看是不是数字 if(num ! .) { if(row[i][num - 0] || col[j][num - 0] || grid[i/3][j/3][num - 0]) { return false; } row[i][num - 0] col[j][num - 0] grid[i/3][j/3][num - 0] 1;//表示存在 } } } return true; } };四.代码讲解一、数据结构设计由于数独棋盘固定为 9×9且数字范围是 1-9我们可以用三个三维数组来模拟哈希表记录每个数字在行、列、九宫格中的出现情况row[9][10]row[i][num]表示第i行中数字num是否已经出现过1 表示出现过0 表示未出现。第二维大小为 10是为了让下标直接对应数字 1-9索引 0 闲置。col[9][10]同理col[j][num]表示第j列中数字num是否出现过。grid[3][3][10]grid[gx][gy][num]表示第(gx, gy)个 3×3 宫中数字num是否出现过。九宫格的编号通过行下标i/3和列下标j/3确定范围均为 0-2。二、遍历棋盘使用两层for循环遍历整个 9×9 棋盘依次处理每个格子board[i][j]获取当前字符num board[i][j]。如果num .则跳过继续处理下一个格子。否则将字符转换为整数d num - 0注意字符 0 到 9 的 ASCII 转换。三、检查冲突在放置数字之前需要检查该数字是否已经在当前行、当前列、当前宫中出现过row[i][d]当前行是否已存在该数字col[j][d]当前列是否已存在该数字grid[i/3][j/3][d]当前九宫格是否已存在该数字如果三者中任意一个为1说明发生了重复数独无效直接返回false。四、标记已出现如果未冲突则将这三个位置都标记为1表示该数字已被使用row[i][d] col[j][d] grid[i/3][j/3][d] 1;五、关键细节数组下标设计row[9][10]中第二维大小为 10是为了直接用d作为下标避免d-1的转换使代码更直观。九宫格定位i/3和j/3的整除运算将 0-8 的行/列映射到 0-2 的宫索引。例如第 0、1、2 行都对应宫行 0第 3、4、5 行对应宫行 1以此类推。同一宫内的格子具有相同的(i/3, j/3)值。

相关新闻

收藏不迷路——耗时三天完成整理 华为IPD流程体系战略解码方法论学习索引【持续更新】
2026/6/16 3:05:00

收藏不迷路——耗时三天完成整理 华为IPD流程体系战略解码方法论学习索引【持续更新】

【CSDN 618年中狂欢群友专属】 �� 错过等一年!两大王炸福利同时炸场: 【CSDN官方福利】 �� 福利① 会员大促 • VIP年卡:买1年送1年 → 低至3.5折 • 加赠:618次下载 + 0元秒杀 + 每日抽iPhone17 �� 福利② AI资源包免费领 • 原价699的7大AI实战专栏(ClaudeCod…

阅读更多
GESP认证C++编程真题解析 | 202603 一级
2026/6/13 12:13:16

GESP认证C++编程真题解析 | 202603 一级

​欢迎大家订阅我的专栏:算法题解:C与Python实现! 本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战! 专栏特色 1.经典算法练习:根据信息学竞赛大纲,精心挑选…

阅读更多
KiCAD——入门及使用
2026/6/13 11:25:23

KiCAD——入门及使用

文章目录 一、官网及简介 二、使用教程 Eeschema Pcbnew 3D Viewer 预先配置 原理图配置 电路板配置 个人符号和封装库的建立 路径 符号属性 一、官网及简介 KiCad 是一款开源软件套件,用于制作电子电路原理图,打印版 电路板(PCB)及其相关的零件描述。KiCad支持集成设计 在…

阅读更多
如何用biliTickerBuy告别B站会员购抢票焦虑?3步实现自动化购票
2026/6/19 23:59:02

如何用biliTickerBuy告别B站会员购抢票焦虑?3步实现自动化购票

如何用biliTickerBuy告别B站会员购抢票焦虑?3步实现自动化购票 【免费下载链接】biliTickerBuy b站会员购购票辅助工具 项目地址: https://gitcode.com/GitHub_Trending/bi/biliTickerBuy 还在为B站会员购热门门票秒光而烦恼吗?每次心仪的漫展、演…

阅读更多
10分钟完成黑苹果配置:OpCore Simplify终极图形化工具完全指南
2026/6/19 23:59:02

10分钟完成黑苹果配置:OpCore Simplify终极图形化工具完全指南

10分钟完成黑苹果配置:OpCore Simplify终极图形化工具完全指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的OpenCore配置而…

阅读更多
3分钟掌握微信语音转换:Silk v3解码器完整使用指南
2026/6/19 23:59:02

3分钟掌握微信语音转换:Silk v3解码器完整使用指南

3分钟掌握微信语音转换:Silk v3解码器完整使用指南 【免费下载链接】silk-v3-decoder [Skype Silk Codec SDK]Decode silk v3 audio files (like wechat amr, aud files, qq slk files) and convert to other format (like mp3). Batch conversion support. 项目地…

阅读更多
Hermes WebUI扩展系统架构深度解析:安全可控的自定义功能集成方案
2026/6/19 23:59:02

Hermes WebUI扩展系统架构深度解析:安全可控的自定义功能集成方案

Hermes WebUI扩展系统架构深度解析:安全可控的自定义功能集成方案 【免费下载链接】hermes-webui Hermes WebUI: The best way to use Hermes Agent from the web or from your phone! 项目地址: https://gitcode.com/GitHub_Trending/he/hermes-webui Herme…

阅读更多
3步掌握AlphaFold:用AI预测蛋白质结构的完整实践指南
2026/6/19 23:59:02

3步掌握AlphaFold:用AI预测蛋白质结构的完整实践指南

3步掌握AlphaFold:用AI预测蛋白质结构的完整实践指南 【免费下载链接】alphafold Open source code for AlphaFold 2. 项目地址: https://gitcode.com/GitHub_Trending/al/alphafold AlphaFold是一款革命性的深度学习蛋白质结构预测工具,它正在彻…

阅读更多
第8章:50个生产级Prompt模板库——按场景分类,拿来就用
2026/6/19 22:59:02

第8章:50个生产级Prompt模板库——按场景分类,拿来就用

本章你将收获 50个经过实战验证的Prompt模板,覆盖代码生成、重构、测试、文档、调试等所有开发场景 每个模板都配有使用说明、参数解释和真实输出示例(含完整代码) 按场景分类:代码生成(15个)、重构优化(10个)、测试调试(10个)、文档注释(10个)、其他工具(5个) 一个可以直接…

阅读更多
别再只用BERT了!用Transformers库的AutoModel,5分钟搞定文本相似度计算(附代码对比)
2026/6/17 23:21:18

别再只用BERT了!用Transformers库的AutoModel,5分钟搞定文本相似度计算(附代码对比)

超越BERT:用Transformers库高效实现文本相似度计算的三种实战方案在自然语言处理领域,文本相似度计算是信息检索、问答系统和推荐系统等应用的核心技术。传统方法如TF-IDF或Word2Vec已逐渐被基于Transformer的预训练模型所取代。Hugging Face的Transform…

阅读更多
Prompt Engineering:重构人机协作的工程化方法论
2026/6/18 4:35:02

Prompt Engineering:重构人机协作的工程化方法论

1. 项目概述:这不是“写提示词”,而是重构人机协作的底层逻辑“Prompt Engineering”这个词,这两年被讲得太多,也太轻飘。很多人把它理解成“给AI发指令的技巧”,甚至简化为“多加几个形容词”“换种说法再试一次”。我…

阅读更多
Anthropic提示层归零:模型即协议的工程实践
2026/6/18 15:04:04

Anthropic提示层归零:模型即协议的工程实践

1. 项目概述:这不是一次普通更新,而是一次架构级“蒸发”“Anthropic Just Shipped the Layer That’s Already Going to Zero”——这个标题一出来,我正在调试一个Claude调用链的终端前停了三秒。不是因为震惊,而是因为熟悉&…

阅读更多
GIT修改用户名
2026/6/17 19:45:33

GIT修改用户名

在GIT中修改用户名可按以下步骤操作: 查看当前git的用户名,使用命令git config --list或git config user.name。修改git用户名,使用命令git config --global user.name "xxx(新的用户名)",将其中…

阅读更多
Win11Debloat:让你的Windows系统重获新生的终极优化工具
2026/6/19 20:40:12

Win11Debloat:让你的Windows系统重获新生的终极优化工具

Win11Debloat:让你的Windows系统重获新生的终极优化工具 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and …

阅读更多
技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践
2026/6/18 15:23:49

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter m4s-converter是一个…

阅读更多