36 有效的數獨

2021-09-02 19:11:26 字數 2460 閱讀 1891

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

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

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

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

上圖是乙個部分填充的有效的數獨。

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

示例 1:

輸入:

[ ["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

示例 2:

輸入:

[ ["8","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"]

]輸出: false

解釋: 除了第一行的第乙個數字從 5 改為 8 以外,空格內其他數字均與 示例1 相同。

但由於位於左上角的 3x3 宮內有兩個 8 存在, 因此這個數獨是無效的。

說明:乙個有效的數獨(部分已被填充)不一定是可解的。

只需要根據以上規則,驗證已經填入的數字是否有效即可。

給定數獨序列只包含數字 1-9 和字元 『.』 。

給定數獨永遠是 9x9 形式的。

思路+**+注釋:

public static boolean isvalidsudoku(char board) 

}for (int j = 0; j < numcount.length; j++)

//如果不大於1,那麼歸零,為下次做準備

numcount[j]=0;}}

//驗證每一列的,共9列

for (int i = 0; i < numcount.length; i++)

}for (int j = 0; j < numcount.length; j++)

//如果不大於1,那麼歸零,為下次做準備

numcount[j]=0;}}

//驗證三層格仔

//驗證第一層3個格仔

int j=0;

for (int k = 0; k < 3; k++) }}

for (int m = 0; m < numcount.length; m++)

//如果不大於1,那麼歸零,為下次做準備

numcount[m]=0;}}

//驗證第二層3個格仔

j=0;

for (int k = 0; k < 3; k++) }}

for (int m = 0; m < numcount.length; m++)

//如果不大於1,那麼歸零,為下次做準備

numcount[m]=0;}}

//驗證第三層3個格仔

j=0;

for (int k = 0; k < 3; k++) }}

for (int m = 0; m < numcount.length; m++)

//如果不大於1,那麼歸零,為下次做準備

numcount[m]=0;}}

return true;

}

36 有效數獨

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

36 有效的數獨

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

36 有效的數獨

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