[leetcode] 20. Valid Sudoku

时间:2022-09-16 16:36:09

这道题目被放在的简单的类别里是有原因的,题目如下:

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 '.'.

[leetcode] 20. Valid Sudoku

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.

又是一开始犯了审题错误的毛病,我以为是要写出一个计算数独的AI,还在想为啥这种难度都被认为成简单,结果我们看最后的note:

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

就是说不需要这个数独是可以解,只要判断给你的这个数独题目是不是合法的数独就行了。所以难度就骤降了,随便找了一个解法上去AC。

class Solution {
public:
bool isValidSudoku(vector<vector<char> > &board) {
vector<vector<int>> bucket(3, vector<int>(9, 0));
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9; j++)
{
if (board[i][j] != '.' && ++bucket[0][board[i][j] - '1'] > 1) return false;
if (board[j][i] != '.' && ++bucket[1][board[j][i] - '1'] > 1) return false;
int v = j%3 + 3*(i%3);
int h = j/3 + 3*(i/3);
if (board[v][h] != '.' && ++bucket[2][board[v][h] - '1'] > 1) return false;
}
bucket = vector<vector<int>>(3, vector<int>(9, 0));
}
}
};

每个点的合法性判断有三种,一种是横向是否有相同数字,一种是纵向是否有相同数字,一种是这个点所在的3*3格子内是否用相同数字。

[leetcode] 20. Valid Sudoku的更多相关文章

  1. &lbrack;LeetCode&rsqb; 036&period; Valid Sudoku &lpar;Easy&rpar; &lpar;C&plus;&plus;&rpar;

    指数:[LeetCode] Leetcode 解决问题的指数 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 036. ...

  2. LeetCode&colon;36&period; Valid Sudoku,数独是否有效

    LeetCode:36. Valid Sudoku,数独是否有效 : 题目: LeetCode:36. Valid Sudoku 描述: Determine if a Sudoku is valid, ...

  3. LeetCode 36 Valid Sudoku

    Problem: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board ...

  4. 【leetcode】Valid Sudoku

    题目简述: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board cou ...

  5. Java &lbrack;leetcode 36&rsqb;Valid Sudoku

    题目描述: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board cou ...

  6. LeetCode&lpar;38&rpar;-Valid Sudoku

    题目: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could ...

  7. leetcode 20&period; Valid Parentheses 、32&period; Longest Valid Parentheses 、

    20. Valid Parentheses 错误解法: "[])"就会报错,没考虑到出现')'.']'.'}'时,stack为空的情况,这种情况也无法匹配 class Soluti ...

  8. 蜗牛慢慢爬 LeetCode 36&period;Valid Sudoku &lbrack;Difficulty&colon; Medium&rsqb;

    题目 Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could ...

  9. leetCode 36&period;Valid Sudoku&lpar;有效的数独&rpar; 解题思路和方法

    Valid Sudoku Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku bo ...

随机推荐

  1. html canvas 弹球&lpar;模仿&rpar;

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. AC日记——石头剪子布 openjudge 1&period;7 04

    04:石头剪子布 总时间限制:  1000ms 内存限制:  65536kB 描述 石头剪子布,是一种猜拳游戏.起源于中国,然后传到日本.朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风 ...

  3. Channel SDK &lpar;渠道SDK&rpar; for Unity

    渠道 英文channel,解释:商品的销售路线,也就是我们开发商(CP)都把游戏开发好了,交付给渠道帮我们运营,帮我们推广,帮我们赚钱. Android和IOS渠道 拿安卓和IOS两大平台来说,它们都 ...

  4. HDU-2778 DNA Sequence(AC自动机)

    题目大意:统计模式串出现的次数. 题目分析:模板题. 代码如下: # include<iostream> # include<cstdio> # include<queu ...

  5. python学习笔记5(元组)

    一.元组特性 1.类似列表,但不可变类型,正因如此,它可以做一个字典的key2.当处理一组对象时,这个组默认是元组类型3.所有的多对象,逗号分隔的,没有明确用符号定义的这些都默认为元组类型 >& ...

  6. 4种字符串匹配算法&colon;KMP&lpar;下&rpar;

    回顾:4种字符串匹配算法:BS朴素 Rabin-karp(上) 4种字符串匹配算法:有限自动机(中) 1.图解 KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R ...

  7. laravel好文

    https://laravelacademy.org/post/8464.html   最佳实践 laravel代码的书写规范以及优化 https://laravelacademy.org/post/ ...

  8. &lbrack;转CSDN多篇文章&rsqb;WEB 3D SVG CAD 矢量 几种实现方案

    WEB 3D SVG CAD 矢量 几种实现方案 原创 2014年10月24日 08:34:11 标签: WEB3D / CADSVG / 矢量 2665 一.全部自己开发,从底层开始 VML+SVG ...

  9. 【知了堂学习笔记】java 底层容易忽略的知识点

    1. java中的关键字 提到关键字,最主要的就是不能用关键字作为标识符,值得注意的有以下几点. ①其中goto与const在java中没有定义,但是也是关键字.这个基本用不到,但是应该有个认知. ② ...

  10. Spring Boot自定义配置

    一.方法 覆盖自动配置很简单,就当自动配置不存在,直接显式地写一段配置.这段显式配置的形式 不限, Spring支持的XML和Groovy形式配置都可以. 二.原理 @ConditionalOnMis ...