有效的数独——C

[leetcode]Valid Sudoku(判断有效数独 C语言实现) Valid Sudoku Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.The Sudoku board could be partially filled, where empty cells are filled with the character ‘.’.A partially filled 阅读详情

请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。

数字 1-9 在每一行只能出现一次。

数字 1-9 在每一列只能出现一次。

数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)

注意:

一个有效的数独(部分已被填充)不一定是可解的。

只需要根据以上规则,验证已经填入的数字是否有效即可。

空白格用 '.' 表示。

示例 1:

输入:board =

[["5","3",".",".","7",".",".",".","."]

,["6",".",".","1","9","5",".",".","."]

,[".","9","8",".",".",".",".","6","."]

,["8",".",".",".","6",".",".",".","3"]

,["4",".",".","8",".","3",".",".","1"]

,["7",".",".",".","2",".",".",".","6"]

,[".","6",".",".",".",".","2","8","."]

,[".",".",".","4","1","9",".",".","5"]

,[".",".",".",".","8",".",".","7","9"]]

输出:true

示例 2:

输入:board =

[["8","3",".",".","7",".",".",".","."]

,["6",".",".","1","9","5",".",".","."]

,[".","9","8",".",".",".",".","6","."]

,["8",".",".",".","6",".",".",".","3"]

,["4",".",".","8",".","3",".",".","1"]

,["7",".",".",".","2",".",".",".","6"]

,[".","6",".",".",".",".","2","8","."]

,[".",".",".","4","1","9",".",".","5"]

,[".",".",".",".","8",".",".","7","9"]]

输出:false

解释:除了第一行的第一个数字从 5 改为 8 以外,空格内其他数字均与 示例1 相同。 但由于位于左上角的 3x3 宫内有两个 8 存在, 因此这个数独是无效的。

思路:

首先先检测行,然后检测列,最后检测三比三小格里面的东西

无论是检测行还是列都可以用标记的方法,设立一个数组flag,如果在那一行中flag[1]出现一次,那么flag[1]就++,最后检测,如果最后对应的值是2就返回false

三比三小格是固定的,在固定范围里面用行或者列覆盖就可以了

代码:

bool isValidSudoku(char** board, int boardSize, int* boardColSize){
 int count = 0;
    int *flag = (int*)malloc(sizeof(int) * 10);
    for(int i = 0; i < 9; i++){
    for(int k = 0; k <= 9; k++)flag[k] = 0;
    for(int j = 0; j < 9; j++){
        if(board[i][j] != '.'){
            flag[board[i][j] - 48]++;
            if(flag[board[i][j] - 48] == 2)return false;
        }
    }
    }
     for(int i = 0; i < 9; i++){
        for(int k = 0; k <= 9; k++)flag[k] = 0;
        for(int j = 0; j < 9; j++){
            if(board[j][i] != '.'){
                flag[board[j][i] - 48]++;
                if(flag[board[j][i] - 48] == 2)return false;
            }
        }
     }
    for(int i = 0; i < 7; i += 3){
        for(int k = 0; k <= 9; k++)flag[k] = 0;
        for(int j = 0; j < 9; j++){
                if(count % 3 == 0)
                for(int k = 0; k <= 9; k++)flag[k] = 0;
            if(board[i][j] != '.'){
                flag[board[i][j] - 48]++;
                if(flag[board[i][j] - 48] == 2)return false;
            }
            if(board[i + 1][j] != '.'){
                flag[board[i + 1][j] - 48]++;
                if(flag[board[i + 1][j] - 48] == 2)return false;
            }
            if(board[i + 2][j] != '.'){
                flag[board[i + 2][j] - 48]++;
               if(flag[board[i + 2][j] - 48] == 2)return false;
            }        
            count++;
        }
    }
    return true;
}

Leetcode 有效的数独(c++) 清晰易懂 判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 上图是一个部分填充的有效的数独。 数独部分空格内已填入了数字,空白格用 ‘.’ 表示。 示例 1: 输入: [ [“5”,“3”,".",".",“7”,".","."... 阅读详情

相关推荐

【SAP PO】SAP PO 接口配置完整教程之二REST服务对接

SAP PO 接口配置完整教程之二REST服务对接

XLevon的博客 1万+

有效的数独(C语言解法)

判断一个 9x9 的数独是否有效。'.'1-9'.'

weixin_48941116的博客 1116

eNSP网络构建—建立小型局域网

企业私有网络构建运维 实战案例——使用模拟器构建局域网络 案例分析 1.架构分析 (1)需求分析 本实验的目的在于建立小型局域网。由于公司由不同部门组成,并分布在不同地点,因此需要划分不同网络实现互联互通。设计以下网络:两个部门各使用一台交换机连接,然后连接到总交换机,再通过路由器与外网以及其他部门网络相连。为了控制网络上的广播风暴,增加网络的安全性,在交换机上需要设置VLAN,在路由器与交换机之...

_ 4万+

LeetCode 有效的数独 C语言

思路 哈希表,行、列、三宫格分别用一个表记录数字是否出现过,即下标为数字的元素用true标记已经出现过,遍历时若元素在三个表中已被标记为true,则返回false bool isValidSudoku(char** board, int boardSize, int* boardColSize){ bool col[9][9] = {false}; bool row[9][9]...

qq_43874157的博客 648

新手避坑指南:HT7036计量芯片SPI读取电压的完整流程(从复位到校准)

本文详细介绍了HT7036计量芯片的SPI读取电压完整流程,从硬件准备到校准设置,重点解析了复位引脚处理、SPI通信配置、芯片初始化及数据处理等关键步骤。针对常见问题如晶振焊接、SPI时序错误等提供实用解决方案,帮助开发者高效完成电压测量与校准。

weixin_30070339的博客 327

部署与可视化系统:零基础到精通:LabVIEW 调用 YOLO 动态链接库(DLL)的保姆级视觉检测系统融合实战

LabVIEW与YOLO26深度集成:工业视觉检测新范式 本文揭示了LabVIEW与最新YOLO26模型深度集成的创新方案,通过C++封装ONNX Runtime为DLL,在LabVIEW中实现端到端视觉检测。核心突破点包括: 技术选型:对比YOLOv5/YOLOv8/YOLO26性能,YOLO26在CPU推理速度提升43%,支持NMS-Free端到端推理 部署架构:提供ONNX Runtime C++ API和TensorRT两种DLL封装路径,适配不同硬件环境 工程实现:详细展示从PyTorch模型导出

ZXSXJ的博客 284

leetcode 36 有效的数独 C语言

题目 leetcode 36 判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 int rowcheck(char **board, int len, int row) { int flag[10] = {0...

qq_42007287的博客 388

广东省低应变题库

11.按《建筑地基基础检测规范》DBJ/T15-60-2019的规定,采用低应变法对混凝土预制桩进行检测时,地基基础设计等级为甲级的桩基工程抽检桩数不应少于总桩数的30%,其余桩基工程抽检桩数不应少于总桩数的20%,且不得少于10根;16.按《建筑地基基础检测规范》DBJ/T15-60-2019的规定,当对某桩的桩身完整性判定为III类时,可认为该桩不满足验收条件,不用进一步确定该桩桩身缺陷对桩身结构承载力的影响程度。2.地基基础检测所用计量器具均应在检定(校准、验证)的有效期内,性能符合相关技术要求。

ZShy001238的博客 320

Leetcode算法题(C语言)11--有效的数独

题目:有效的数独 判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 1 数字 1-9 在每一行只能出现一次。 2 数字 1-9 在每一列只能出现一次。 3 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 上图是一个部分填充的有效的数独。 数独部分空格内已填入了数字,空白格用 ‘.’ 表示。 示例 1: 输入: [ ["5","3...

absinjun的博客 2311

[cshell]个性化配置你的cshrc/tcshrc

本文介绍了csh/tcsh shell的配置优化方法,主要包括:1. 配置文件管理(全局和个人配置);2. 按键绑定设置(解决远程登录按键问题);3. 提示符个性化(包含颜色配置方案);4. 环境变量设置(如LSCOLORS、CLICOLOR等);5. 安全防护措施(防误删、防覆盖等);6. 实用alias命令集(简化操作、提高效率)。文章提供了详细的配置示例,并建议通过man tcsh获取更多帮助信息。这些配置能显著提升shell使用体验和工作效率。

元直的博客 6117

【Claude Code 源码解析教程】第4章:QueryEngine 查询引擎

本章深入解析 Claude Code 的核心引擎——QueryEngine,它是整个对话系统的"心脏",负责管理会话状态、消息处理流程和多轮对话支持。

rengang66的博客 270

程序设计-判断数独是否有效(C)

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net /* * 判断数独是否有效。 * 注:空白格用0表示。 * * IsValidSudoku.c - by LiveEveryDay */ #include <stdio.h> #include <string.h> int IsValidRow(int s[9][9]) { int i, j, arr[9];

了解➔熟悉➔掌握➔精通 4619

Ollama + OpenCLAW 在 Windows 系统的完整部署指南

Windows 部署优先选 WSL2,避免原生环境的权限/兼容性问题;网络问题通过“离线包+国内镜像”解决,版本问题通过升级 Node.js 解决;内存不足可切换轻量模型或增大 WSL2 内存分配;核心链路:Ollama(模型管理)→ Gateway(网关)→ OpenCLAW TUI(交互),各组件启动正常即可稳定使用。

lpfasd123的博客 2825

(每日一练c++)36. 有效的数独

请你判断一个9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字1-9在每一行只能出现一次。 数字1-9在每一列只能出现一次。 数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。(请参考示例图) 注意: 一个有效的数独(部分已被填充)不一定是可解的。 只需要根据以上规则,验证已经填入的数字是否有效即可。 空白格用'.'表示。 示例 1: 输入:board = [["5","3",".",".","7",".",".","......

weixin_39827856的博客 233

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

c语言数独合法验证,[leetcode]Valid Sudoku(判断有效数独 C语言实现)

Valid SudokuDetermine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.The Sudoku board could be partially filled, where empty cells are filled with the character ‘.’.A partially filled ...

weixin_42515058的博客 991

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

LeetCode-中等-36-有效的数独(C)

文章首发及后续更新:https://mwhls.top/1604.html 新的更新内容请到mwhls.top查看。 无图/无目录/格式错误/更多相关请到上方的文章首发页面查看。 题目 判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一

asd123pwj的博客 164

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

LeetCode36.有效的数独(Python,C)

解题思路 题目并没有让我们对数独进行解题,那么我们只要保证数独每一个数的“合法性”,想要保证数独的“合法性”那么就要符合题目给的3个条件。 条件: 1.数字1-9在每一行只能出现一次 2.数字1-9在每一列只能出现一次 3.数字1-9在一个以实粗实线分隔的3x3宫内只能出现一次. 注意事项: 1.一个有效的数独不一定是可解的 2.只要根据条件验证填入的数字是否“合法”即可 3.空白格用'.'表示 实现思路(伪代码) 首先可以创建3个二维数组,也就是哈希表,然后判断出现过的数字是否重复了

du157233767的博客 332

(每日一练c++)有效的数独

有效的数独 请你判断一个9x9的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 数字1-9在每一行只能出现一次。 数字1-9在每一列只能出现一次。 数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。(请参考示例图) 数独部分空格内已填入了数字,空白格用'.'表示。 注意: 一个有效的数独(部分已被填充)不一定是可解的。 只需要根据以上规则,验证已经填入的数字是否有效即可。 示例 1: 输入:board = [["5","3",...

biyesheji1000的专栏 672

力扣 36. 有效的数独 C语言实现

力扣 36. 有效的数独 创建三个数组记录元素出现的次数

ThePaK的博客 1048

LeetCode 36. 有效的数独(C++)

请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。

Panbk的博客 474

LeetCode-36-有效的数独-C语言

void clean(int arr[10]){ memset(arr, 0, sizeof(int) * 10); } bool isValidSudoku(char** arr, int boardSize, int* boardColSize){ int arr1[10]; int arr2[10]; int i, j; /* 判断横竖 ...

SFFS 673

习题:有效的数独(C语言)

题目 请你判断一个 9x9 的数独是否有效。 只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 数独部分空格内已填入了数字,空白格用 ‘.’ 表示。 注意: 一个有效的数独(部分已被填充)不一定是可解的。 只需要根据以上规则,验证已经填入的数字是否有效即可。 示例 1: 输入:board = [[“5”,“3”,".",".",“

Mu_Muxi_的博客 625

力扣 36.有效的数独(c语言)

1.题目描述 2.思路讲解 1.一开始看通过率这么高以为很好做,但发现并不是那么回事,对我来说难度挺大 难点在怎么去想到用哈希表,以及如何分割开每个3x3的矩形,去判断是否有重复的数 2.引用 力扣https://leetcode-cn.com/problems/valid-sudoku/solution/36-jiu-an-zhao-cong-zuo-wang-you-cong-shang-wang-x/这位大神,对分割矩形块讲的很好,我也是借鉴了他的思路,最后给自己做一个总结 3..

程伟耀的博客 378

LeeCode:有效数独(C++)

判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可

yl13137749352的博客 693

(c语言)力扣--初级算法之有效的数独

有效的数独 判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 上图是一个部分填充的有效的数独。 数独部分空格内已填入了数字,空白格用 ‘.’ 表示。 示例 1: 输入: [ [“5”,“3”,".",".",“7”,".",".",".","."], [“6”,".",".",“1”,“9”,“5”,".",".","."], [

m0_51001708的博客 385

【leetcode面试经典150题】34.有效的数独(C++)

本题来自【leetcode面试经典150题】34.有效的数独(C++)

m0_74172965的博客 903
上一篇: 重塑矩阵——真是难搞
下一篇: 环形链表——快慢指针
Whtiewww
博客等级 码龄7年 54粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值