敘述
這是 Data Structure I 的第五天第一個題目,總共有兩題。
- 難度:
Medium - 花費時間: 1小時
- 題目
傳入一個 9X9 Sudoku board (9x9 數獨),然後你要判斷傳入的數獨是否合法,合法傳出 true , 不合法傳出 false 。
合法判斷:
- 每一行的 1-9 數字都不能重複,而要剛好可以填滿 1-9 。
- 每一列的 1-9 數字都不能重複,而要剛好可以填滿 1-9 。
- 每
3X3 sub-boxes的 1-9 數字都不能重複,而要剛好可以填滿 1-9 。
數獨可以是合法但是無解的,本題是要判斷合不合法,不用判斷有沒有解。
點我開啟限制與範例
限制:
board.length == 9board[i].length == 9board[i][j]is a digit1-9or'.'.
Example 1:
![]()
1 | Input: board = |
Example 2:
1 | Input: board = |
筆記
可以使用 JS 的 Set , Set 的功能是可以存入不重複的值,然後再用 Set.prototype.has() 這個函式去判斷是否有存在值,效用類似 JS 裡的 Array.prototype.indexOf() = -1 。
遍歷一次陣列,在遍歷的同時就把每個值的資料存入 Set 裡 ,要注意幾件事:
- 每個值同時都是一行、一列、一個
sub-boxes的值,所以要存入三次,判斷三次。 - 避開值為 . 的欄位。
程式碼
1 | /** |
成績
