习题:有效的数独(C语言)
题目
请你判断一个 9x9 的数独是否有效。
只需要 根据以下规则 ,验证已经填入的数字是否有效即可。
数字 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 存在, 因此这个数独是无效的。
提示:
board.length == 9
board[i].length == 9
board[i][j] 是一位数字或者 ‘.’
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-sudoku
暴力解法, 题解来源于评论区,链接在代码下方
bool isValidSudoku(char** board, int boardSize, int* boardColSize)
{for (int i = 0; i < boardSize; i++)//行数{for (int j = 0; j < *boardColSize; j++)//列数{if (board[i][j] != '.'){for (int k = 0; k < *boardColSize; k++){if (j != k && board[i][j] == board[i][k])//查找每一行的情况 return false;}for (int k = 0; k < boardSize; k++){if (i != k && board[i][j] == board[k][j])//查找每一列的情况{return false;}}//查找每个子块int x = i / 3 * 3;//每个字块中的x开端int y = j / 3 * 3;for (int m = 0; m < 3; m++){for (int n = 0; n < 3; n++){if (x + m != i && y + n != j && board[x + m][y + n] == board[i][j])//**return false;}}}}}return true;
}作者:qsu-tong-v
链接:https://leetcode-cn.com/problems/valid-sudoku/solution/chun-cjian-dan-bao-li-wu-tao-lu-by-qsu-t-hecp/
来源:力扣(LeetCode)
习题:有效的数独(C语言)相关推荐
- c语言程序设计课后答案西电,C语言程序设计习题大全(含答案)C语言-.doc
C语言程序设计习题大全(含答案)C语言-.doc C语言基础?一: 1.下列四组选?项中,均不是C语?言关健字的?选项是( A ). A) defin?e B) gect C) inclu?de D) ...
- 笔记14 笨办法中折磨人的习题ex23.py,人类语言与计算机语言
笔记14 笨办法中折磨人的习题ex23.py,人类语言与计算机语言 开始学习习题23了,但为了那个languages.text的下载,费了老大劲好像还是没有下载全.后来载下来了,那个代码文件录下来,却 ...
- c语言编程:vc++6.0入门教程及习题_百度文库,C语言编程:vc++6.0入门教程及习题.doc...
C语言编程:vc++6.0入门教程及习题.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址 ...
- c语言程序设计基础课后习题答案,2011级C语言程序设计基础教程课后习题答案
1.C 语言课后习题习题答案详解(11 级教材)第 1 章1.1 填空题1.1.1 应用程序 ONEFUNC.C 中只有一个函数,这个函数的名称是 _main .1.1.2 一个函数由_函数头 _和_ ...
- python展开 c函数中的宏预处理_最基本的宏函数 课后习题9.2 (C语言代码)
解题思路 利用宏函数. 函数. 本题的难点肯定不在算法, 应该是宏函数! 带参宏定义的一般形式为:#define 宏名(形参表) 字符串; 在字符串中含有各个形参. 带参宏调用的一般形式为: #def ...
- 带你刷笔试关的小怪|详解指针习题和面试题【C语言/指针/进阶】
文章目录 前言 9. 指针和数组笔试题解析 复习回顾 一维数组 字符数组 二维数组 10. 指针笔试题 笔试题1: 笔试题2 笔试题3 笔试题4 笔试题5 笔试题6 笔试题7 (#)笔试题8 结语 前 ...
- 数据结构c语言描述的习题答案,《数据结构 - C语言描述》习题及答案 耿国华-...
第五章 数组和广义表 习 题 1. 假设有6行8列的二维数组A,每个元素占用6个字节,存储器按字节编址.已知A的基地址为1000,计算: (1) 数组A共占用多少字节: (288) (2) 数组A的最 ...
- c语言以正确定义字符变量ch1,【课外习题】二、 C语言程序设计的初步知识
一.选择题 1.在C 语言中,下列类型属于构造类型的是 . A)整型 B)字符型 C)实型 D)数组类型 2.在C 语言中,下列类型属于构造类型的是 . A)空类型 B)字符型 C)实型 D)共用体类 ...
- c程序设计语言_习题8-4_重新实现c语言的库函数fseek(FILE*fp,longoffset,intorigin)
fseek库函数 #include <stdio.h> int fseek(FILE *stream, long int offset, int origin); 返回:成功为0,出错 ...
- 九宫格数独c语言编程,求用C语言编一个解九宫格数独的程序
满意答案 emhw637617 2013.12.30 采纳率:59% 等级:12 已帮助:5603人 前两天刚写完,还没优化,已运行通过了. 晕,一维的好麻烦,这个也是碰巧前两天刚写好的,你看着 ...
最新文章
- RDKit | 基于scikit-learn将pytorch用于QSAR模型构建
- makefile多目录多文件
- 网站seo优化相关性需要了解哪三方面内容?
- Axure RP使用攻略--入门级(五)系统函数与变量
- Latex 数学公式使用入门
- libevent源码学习-----统一事件源及信号绑定函数
- java 圆的交点_java – 获取线条和形状的交点
- string类的erase函数属于stl吗_探索STL容器:vector
- 3007基于二叉链表的二叉树叶子结点到根结点的路径的求解(附DFS在树里的应用分析,思路详解)
- Java定时器每小时执行一次
- 二、Python自动化运维入门(函数、模块)
- 串口调试工具(Python2.7+pyserial+Tkinter)
- java socket第三方库_Java基于Socket实现HTTP下载客户端
- 上海财经应用统计考python_2021年上海财经大学应用统计硕士考研必看成功上岸前辈复习经验分享...
- BUUCTF笔记之Misc系列部分WriteUp(一)
- VIM教程与学习资料汇总(转载自善用佳软)
- 如何转换成Ogg和MPEG4格式
- ugui 转轮_Unity3D的FingerGesture插件
- 虚拟机复制镜像操作方法
- 多个视频如何合成一个视频?