36. Valid Sudoku

在这里插入图片描述

之前没有写过这么简洁的方法:

class Solution {
public:
    bool isValidSudoku(vector<vector<char>>& board) {
        int used1[9][9] = {0}, used2[9][9] = {0}, used3[9][9] = {0};
        for (int i = 0; i < 9; ++i)
            for (int j = 0; j < 9; ++j) {
                if (board[i][j] == '.')
                    continue;
                int num = board[i][j] - '0' - 1;
                int k = i / 3 * 3 + j / 3;
                if (used1[i][num] || used2[j][num] || used3[k][num])
                    return false;
                used1[i][num] = used2[j][num] = used3[k][num] = 1;
            }
        return true;
    }
};
//用三个额外的二维数组,分别检测横,纵,块。
posted @ 2019-10-20 09:36  于老师的父亲王老爷子  阅读(14)  评论(0编辑  收藏  举报