判斷乙個 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 ...