2025年8月19日 星期二

[36] Valid Sudoku

沒想到~有一天我會回來寫這題
沒想到~已經感覺沒有那麼難(痛哭)

好像可以再用bit operation 去把3x3的每個小方格從1~9
就不需要宣告 square 9x9了!

bool isValidSudoku(char** board, int boardSize, int* boardColSize) {
    bool colume[9][9] = {false};
    bool square[9][9] = {false};

    for (int i=0; i<9; i++)
    {
//        bool *row = calloc(9, sizeof(bool)*9);
        bool row[9] = {false};

        for (int j=0;j<9;j++)
        {
            if (board[i][j]=='.')
                continue;
            int digit = board[i][j]-'1';
            if (colume[digit][j] || row[digit])
                return false;
            colume[digit][j] = true;
            row[digit] = true;
            int squire_idx = (i/3)*3 + j/3;
            if (square[squire_idx][digit])
                return false;
            square[squire_idx][digit]=true;
        }
    }  
    return true;
}

沒有留言:

張貼留言