zoukankan      html  css  js  c++  java
  • Leetcode 36 Valid Sudoku

    判断一个数独是否合法,即数独的每一行,每一列的数字不能有重复,每一个3*3的小数独中的数字不能有重复。

     1 class Solution {
     2 public:
     3     bool isValidSudoku(vector<vector<char> > &board) {
     4         int rowValid[10] = {0};//用于判断某一行是否合法
     5         int columnValid[10] = {0};//用于判断某一列是否合法
     6         int subBoardValid[10] = {0};//用于判断某一个九宫格是否合法
     7         for(int i = 0; i < 9; i++)
     8         {
     9           memset(rowValid, 0, sizeof(rowValid));
    10           memset(columnValid, 0, sizeof(columnValid));
    11           memset(subBoardValid, 0, sizeof(subBoardValid));
    12           for(int j = 0; j < 9; j++)
    13           {
    14               if(!checkValid(rowValid, board[i][j]-'0') ||
    15                  !checkValid(columnValid, board[j][i]-'0') ||
    16                  !checkValid(subBoardValid, board[3*(i/3) + j/3][3*(i%3) + j%3]-'0'))
    17                  return false;
    18           }
    19         }
    20         return true;
    21   }
    22   bool checkValid(int vec[], int val)
    23   {
    24     if(val < 0)return true;//对应的是字符‘.’
    25     if(vec[val] == 1)return false;
    26     vec[val] = 1;
    27     return true;
    28   }
    29 };
  • 相关阅读:
    shell 脚本判断linux 的发行版本
    notepad++ 正则学习记录
    360 加固分析
    Android的静默安装
    Linux下调整根目录的空间大小
    linux 隐藏权限
    i针对网段开放端口 (命令行设置)
    python 删除文件/夹
    字符串截取
    echo 不换行
  • 原文地址:https://www.cnblogs.com/onlyac/p/5268410.html
Copyright © 2011-2022 走看看