36 有效的數獨

2021-09-22 12:17:13 字數 928 閱讀 8482

判斷乙個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可

數字1-9在每一行只能出現一次。

數字1-9在每一列只能出現一次。

數字1-9在每乙個以粗實線分隔的3x3宮內只能出現一次

數獨部分空格內已填入了數字,空白格用'.'表示。

方法一:一遍遍歷

思路:時間複雜度o(1),空間複雜度o(1)

對9*9的陣列進行一遍遍歷,對行遍歷的同時,交換二維陣列的a[i][j]中i,j位置可以對列進行遍歷

其中對九宮格的遍歷採用row/3*3+column/3下標,從左往右第乙個格仔計算得出的下標為0,這樣每個格仔的位置都確定了

bool isvalidsudoku(vector>& board) 

columnset.insert(board[row][column]);

//檢查九宮格

int boxindex = row / 3 * 3 + column / 3; //精妙

if (boxset[boxindex].find(board[row][column]) != boxset[boxindex].end())

boxset[boxindex].insert(board[row][column]);

}if (board[column][row] != '.')

rowset.insert(board[column][row]);

}} }

return true;

}

36 有效數獨

判斷乙個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。數字 1 9 在每一行只能出現一次。數字 1 9 在每一列只能出現一次。數字 1 9 在每乙個以粗實線分隔的 3x3 宮內只能出現一次。對於每乙個遍歷到的當前元素,需要知道該元素是否之前已在該行,該列,該小方陣裡出...

36 有效的數獨

判斷乙個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。數字 1 9 在每一行只能出現一次。數字 1 9 在每一列只能出現一次。數字 1 9 在每乙個以粗實線分隔的 3x3 宮內只能出現一次。上圖是乙個部分填充的有效的數獨。數獨部分空格內已填入了數字,空白格用 表示。示...

36 有效的數獨

判斷乙個9x9的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。數字1 9在每一行只能出現一次。數字1 9在每一列只能出現一次。數字1 9在每乙個以粗實線分隔的3x3宮內只能出現一次。上圖是乙個部分填充的有效的數獨。數獨部分空格內已填入了數字,空白格用 表示。輸入 5 3 7 6 ...