Valid Sudoku 数独判定

原创 2018年04月17日 09:01:51

题目描述

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 sudoku which is valid.

题意描述:判断矩阵是否是一个数独矩阵。所谓的数独矩阵就是9*9的矩阵,每一行一个元素只出现一次、每一列一个元素只出现一次,并且在任意一个小矩阵中一个元素只出现一次(所说的元素指0-9这九个数字)。

解题分析:注意题目中说的是只要当前已经填充的数字是合法的就可以,不一定要这个数独是有解的。依次判断已给定的矩阵每一行、每一列、以及每个小矩阵上是否是有重复数字即可;

实现代码:

              class Solution {
public:
    bool isValidSudoku(vector<vector<char> > &board) {
        for(int i=0;i<9;i++)
        {
            for(int j=0;j<9;j++)
            {
                if(board[i][j]!='.')
                {
                    if(!isvalid(board,i,j))  return false;
                }
            }
        }
        return true;
    }
    bool isvalid(vector<vector<char>> &board,int i,int j)
     {
         for (int k = 0; k < 9; k++)  //遍历每一列,判断有重复
         {
             if (k != j && board[i][j] == board[i][k]) return false;
         }
         for (int k = 0; k < 9; k++)  //遍历每一行,判断有重复
         {
             if (k != i && board[i][j] == board[k][j]) return false;
         }
         for (int row = i / 3 * 3; row < i / 3 * 3 + 3; row++)//遍历(i,j)所在的小九宫格,判断有重复
         {
             for (int col = j / 3 * 3; col < j / 3 * 3 + 3; col++)
             {
                 if ((row != i || col != j) && board[i][j] == board[row][col])
                     return false;
             }
         }
         return true;
    }
};


LeetCode-36. Valid Sudoku (JAVA)(有效数独)

LeetCode-36. Valid Sudoku (JAVA)(有效数独)
  • mine_song
  • mine_song
  • 2017-04-17 09:25:04
  • 652

【LeetCode-面试算法经典-Java实现】【036-Valid Sudoku(验证数独棋盘)】

【036-Valid Sudoku(验证数独棋盘)】】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Determine if a Sudoku is valid, acc...
  • DERRANTCM
  • DERRANTCM
  • 2015-07-27 07:21:10
  • 3716

LintCode Valid Sudoku 判断数独是否合法

请判定一个数独是否有效。 该数独可能只填充了部分数字,其中缺少的数字用 . 表示。 样例 下列就是一个合法数独的样例。 Determine whether a Sudoku is valid....
  • wutingyehe
  • wutingyehe
  • 2015-06-24 22:21:45
  • 1355

LeetCode---Valid Sudoku解题分析

题意描述:判断矩阵是否是一个数独矩阵。所谓的数独矩阵就是9*9的矩阵,每一行一个元素只出现一次、每一列一个元素只出现一次,并且在任意一个小矩阵中一个元素只出现一次(所说的元素指0-9这九个数字) 矩...
  • u012050154
  • u012050154
  • 2016-05-30 21:40:08
  • 1524

36. Valid Sudoku [easy] (Python)

题目链接https://leetcode.com/problems/valid-sudoku/题目原文 Determine if a Sudoku is valid, according to: ...
  • coder_orz
  • coder_orz
  • 2016-06-06 16:35:20
  • 1596

LeetCode 36 Valid Sudoku(有效数独)

翻译数独板被部分填充,空格部分用'.'来填充。一个部分填充的数组是否有效只需要看其填充的部分即可。原文代码这道题写了一会,错了……因为输入太懒搞了,就直接看了别人写的……class Solution ...
  • NoMasp
  • NoMasp
  • 2015-11-30 20:58:35
  • 3597

[LeetCode] 036. Valid Sudoku (Easy) (C++)

[LeetCode] 036. Valid Sudoku (Easy) (C++)
  • hcbbt
  • hcbbt
  • 2015-03-13 19:13:46
  • 1654

LeetCode 36 Valid Sudoku (C,C++,Java,Python)

Problem: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku boa...
  • runningtortoises
  • runningtortoises
  • 2015-05-18 22:56:46
  • 3121

leetcode_36. Valid Sudoku 判断数独规则是否成立,检查每行、每列、每个九宫格

题目: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku boa...
  • qqzj_bupt
  • qqzj_bupt
  • 2016-11-01 20:18:51
  • 719

python写算法题:leetcode: 36. Valid Sudoku

https://leetcode.com/problems/valid-sudoku/description/ 测试用例少量未通过,分析原因,本程序判断条件更严格,有些明显存在矛盾填写方式,被认定非...
  • lzf_china
  • lzf_china
  • 2017-12-12 01:14:37
  • 66
收藏助手
不良信息举报
您举报文章:Valid Sudoku 数独判定
举报原因:
原因补充:

(最多只允许输入30个字)