題目鏈結:
題目描述
判斷乙個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。
數字 1-9 在每一行只能出現一次。
數字 1-9 在每一列只能出現一次。
數字 1-9 在每乙個以粗實線分隔的 3x3 宮內只能出現一次。
上圖是乙個部分填充的有效的數獨。
數獨部分空格內已填入了數字,空白格用 『.』 表示。示例[
[「5」,「3」,".",".",「7」,".",".",".","."],
[「6」,".",".",「1」,「9」,「5」,".",".","."],
[".",「9」,「8」,".",".",".",".",「6」,"."],
[「8」,".",".",".",「6」,".",".",".",「3」],
[「4」,".",".",「8」,".",「3」,".",".",「1」],
[「7」,".",".",".",「2」,".",".",".",「6」],
[".",「6」,".",".",".",".",「2」,「8」,"."],
[".",".",".",「4」,「1」,「9」,".",".",「5」],
[".",".",".",".",「8」,".",".",「7」,「9」]
]輸出: true
說明:
解決方法
分別對每一行、每一列及每乙個3*3宮格進行驗證
class solution
private:
bool isrow
(vector
char
>> board,
int row)
bool iscolumn
(vector
char
>> board,
int column)
bool ispalace
(vector
char
>> board,
int k)
if(k==1)
if(k==2)
if(k==3)
if(k==4)
if(k==5)
if(k==6)
if(k==7)
if(k==8)
for(
int i=startx;i
3;i++
)for
(int j=starty;j
3;j++)if
(isdigit
(board[i]
[j])
) times[board[i]
[j]-
'0']++;
for(
int i=
0;i<
10;i++)if
(times[i]
>=2)
return false;
return true;}}
;
LeetCode 36 有效的數獨
public boolean isvalidsudoku char board 檢查行 if isparticallyvalid board,i,i,0,8 檢查塊 for int i 0 i 3 i return true 把要檢查的值存入到set中,每次向set中新增值的時候,如果失敗則證明該值...
leetcode36 有效的數獨
判斷乙個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。數字 1 9 在每一行只能出現一次。數字 1 9 在每一列只能出現一次。數字 1 9 在每乙個以粗實線分隔的 3x3 宮內只能出現一次。數獨部分空格內已填入了數字,空白格用 表示。示例 1 輸入 5 3 7 6 1...
LeetCode36 有效的數獨
判斷乙個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。數字 1 9 在每一行只能出現一次。數字 1 9 在每一列只能出現一次。數字 1 9 在每乙個以粗實線分隔的 3x3 宮內只能出現一次。上圖是乙個部分填充的有效的數獨。數獨部分空格內已填入了數字,空白格用 表示。示...