# 36. Valid Sudoku ###### tags: `C++` `LeetCode` `Medium` ## Code ```c++ #include <vector> #include "cout.h" bool isValidSudoku(vector<vector<char>>& board); int main() { vector<vector<char>> v = {{'5','3','.','.','7','.','.','.','.'} ,{'6','.','.','1','9','5','.','.','.'} ,{'.','9','8','.','.','.','.','6','.'} ,{'8','.','.','.','6','.','.','.','3'} ,{'4','.','.','8','.','3','.','.','1'} ,{'7','.','.','.','2','.','.','.','6'} ,{'.','6','.','.','.','.','2','8','.'} ,{'.','.','.','4','1','9','.','.','5'} ,{'.','.','.','.','8','.','.','7','9'}}; cout << isValidSudoku(v) << endl; return 0; } bool isValidSudoku(vector<vector<char>>& board) { int row_used[9][9] = {0}; int col_used[9][9] = {0}; int box_used[3][3][9] = {0}; char c; int val; for(int row = 0; row < 9; row++) { for(int col = 0; col < 9; col++) { c = board[row][col]; val = c - '1'; if(c == '.') { continue; } else { if(row_used[row][val] == 0) row_used[row][val] = 1; else return false; if(col_used[col][val] == 0) col_used[col][val] = 1; else return false; if(box_used[row / 3][col / 3][val] == 0) box_used[row / 3][col / 3][val] = 1; else return false; } } } return true; } ```