博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[leetcode-36-Valid Sudoku]
阅读量:6120 次
发布时间:2019-06-21

本文共 774 字,大约阅读时间需要 2 分钟。

Determine if a Sudoku is valid, according to: .

The Sudoku board could be partially filled, where empty cells are filled with the character '.'.

A partially filled sudoku which is valid.

Note:

A valid Sudoku board (partially filled) is not necessarily solvable. Only the filled cells need to be validated.

思路:

分别用三个二维数组分别记录行、列和子数独里面数字的使用情况。一旦发现已经有数字之前被占用了,返回false。

其中需要注意的是,子数独的下标,如上图中一共存在3*3个子数独,每行3个,一共3行。对于大的数独索引(i,j),对应到

子数独的下标为:i/3 * 3 + j/3 。(比如,对于一个二维m*n的数组,坐标(a,b)映射到一维坐标为:所在行a乘以列数n+列坐标b 即a*n+b)

这里i/3 * 3 + j/3相当于第i/3行,j/3列。

如下是写的:

参考:

bool isValidSudoku(vector
>& board) { int rowcheck[9][9] = {
0},colcheck[9][9] = {
0},subboxcheck[9][9] = {
0}; for(int i = 0;i

 

转载于:https://www.cnblogs.com/hellowooorld/p/6794204.html

你可能感兴趣的文章
Windows下安装、运行Lua
查看>>
Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解(二)
查看>>
初识中间件之消息队列
查看>>
MyBatis学习总结(三)——优化MyBatis配置文件中的配置
查看>>
Spring常用注解
查看>>
我的友情链接
查看>>
PCS子层有什么用?
查看>>
查看端口,关闭端口
查看>>
代码托管平台简介
查看>>
linux:yum和apt-get的区别
查看>>
Sentinel 1.5.0 正式发布,引入 Reactive 支持
查看>>
如何对网站进行归档
查看>>
数据库之MySQL
查看>>
2019/1/15 批量删除数据库相关数据
查看>>
数据类型的一些方法
查看>>
Mindjet MindManager 2019使用教程:
查看>>
游戏设计的基本构成要素有哪些?
查看>>
详解 CSS 绝对定位
查看>>
AOP
查看>>
我的友情链接
查看>>