Valid Sudoku

来源:互联网 发布:淘宝美工每天工作任务 编辑:程序博客网 时间:2024/03/28 20:56

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.


Solution:

class Solution {public:    bool isValidSudoku(vector<vector<char>>& board) {        vector<vector<bool> > row(9, vector<bool>(10, true));        vector<vector<bool> > col(9, vector<bool>(10, true));        vector<vector<bool> > small(9, vector<bool>(10, true));        for(int i = 0; i < 9; ++i)            for(int j = 0; j < 9; ++j)            {                if(board[i][j] == '.') continue;                int val = board[i][j] - '0';                if(row[i][val]) row[i][val] = false;                else return false;                if(col[j][val]) col[j][val] = false;                else return false;                if(small[(i/3)*3+j/3][val]) small[(i/3)*3+j/3][val] = false;                else return false;            }                return true;    }};


0 0