• LeetCode 36 Valid Sudoku


    Problem:

    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.

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

    Summary:

    判断当前给出的数独是否满足条件。

    Solution:

    横向,纵向,每个3*3小方格分别判断。

     1 class Solution {
     2 public:
     3     bool isValidSudoku(vector<vector<char>> board) {
     4         int validRow[9] = { 0 }, validCol[9] = { 0 };
     5         int validSqr[9] = { 0 };
     6     
     7         for (int i = 0; i < 9; i++) {
     8             memset(validRow, 0, sizeof(validRow));
     9             memset(validCol, 0, sizeof(validCol));
    10     
    11             for (int j = 0; j < 9; j++) {
    12                 if (board[i][j] != '.') {
    13                     char tmp = board[i][j];
    14                     if (!validRow[tmp - '0' - 1]) {
    15                         validRow[tmp - '0' - 1]++;
    16                     }
    17                     else {
    18                         return false;
    19                     }
    20                 }
    21     
    22                 if (board[j][i] != '.') {
    23                     char tmp = board[j][i];
    24                     if (!validCol[tmp - '0' - 1]) {
    25                         validCol[tmp - '0' - 1]++;
    26                     }
    27                     else {
    28                         return false;
    29                     }
    30                 }
    31             }
    32         }
    33     
    34         for (int m = 0; m < 3; m++) {
    35             for (int n = 0; n < 3; n++) {
    36                 memset(validSqr, 0, sizeof(validSqr));
    37     
    38                 for (int i = m * 3; i < m * 3 + 3; i++) {
    39                     for (int j = n * 3; j < n * 3 + 3; j++) {
    40                         if (board[i][j] != '.') {
    41                             char tmp = board[i][j];
    42                             if (!validSqr[tmp - '0' - 1]) {
    43                                 validSqr[tmp - '0' - 1]++;
    44                             }
    45                             else {
    46                                 return false;
    47                             }
    48                         }
    49     
    50                     }
    51                 }
    52             }
    53         }
    54     
    55         return true;
    56     }
    57 
    58 };
  • 相关阅读:
    python 递归一行实现字符串反转
    HABSE安装教程
    Target runtime Apache Tomcat v7.0 is not defined.
    论各种非人性化自动设置及关闭位置(持续更新中。。。)
    装饰者模式
    傻瓜式servlet监听器简单实例
    editplus代码格式化
    session,cookie机制
    servlet文件部署在tomcat上
    python学习笔记(一):作图
  • 原文地址:https://www.cnblogs.com/VickyWang/p/6243675.html
Copyright © 2020-2023  润新知