zoukankan      html  css  js  c++  java
  • [LeetCode]Valid Sudoku

    题目描述:(链接)

    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.

    解题思路:

    先验证行,再验证列,最后验证小方格!

     1 class Solution {
     2 public:
     3     bool isValidSudoku(vector<vector<char>>& board) {
     4         bool used[9];
     5         
     6         for (int i = 0; i < 9; ++i) {
     7             memset(used, false, sizeof(used));
     8             for (int j = 0; j < 9; ++j) {
     9                 if (!isVaild(board[i][j], used)) {
    10                     return false;
    11                 }
    12             }
    13             
    14             memset(used, false, sizeof(used));
    15             for (int j = 0; j < 9; ++j) {
    16                 if (!isVaild(board[j][i], used)) {
    17                     return false;
    18                 }
    19             }
    20         }
    21         
    22         for (int r = 0; r < 3; ++r) {
    23             for (int c = 0; c < 3; ++c) {
    24                 memset(used, false, sizeof(used));
    25                 
    26                 for (int i = r * 3; i < 3 * r + 3; ++i) {
    27                     for (int j = c * 3; j < 3 * c + 3; ++j) {
    28                         if (!isVaild(board[i][j], used)) {
    29                             return false;
    30                         }
    31                     }
    32                 }
    33             }
    34         }
    35         
    36         return true;
    37     }
    38 private:
    39     bool isVaild(char c, bool *used) {
    40         if (c == '.') {
    41             return true;
    42         }
    43         
    44         if (used[c - '1']) {
    45             return false;
    46         }
    47         
    48         used[c - '1'] = true;
    49         return true;
    50     }
    51 };
  • 相关阅读:
    鼠标拖动DIV移动
    JS中事件&对象
    响应式与弹性布局
    JS中的变量和输入输出
    JS中的运算符&JS中的分支结构
    HTML基本标签
    CSS基础语法
    JS中循环结构&函数
    String 二
    StringBuffer
  • 原文地址:https://www.cnblogs.com/skycore/p/4862567.html
Copyright © 2011-2022 走看看