作者:
Rushia (みけねこ的鼻屎)
2022-11-23 10:15:0736. Valid Sudoku
給你一個二維字元陣列表示一個數獨,包含1~9和表示空白的.字元,一個合法數獨
滿足以下條件:
1.每行和每列最多出現一種數字一次
2.一個3x3九宮格內只會出現一種數字一次
3.數獨可能無解(無法填滿數字),但是只有滿足1或2才是Invalid
判斷給定的棋盤是否是一個合法數獨
Example:
https://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Sudoku-by-L2G-20050714.svg/250px-Sudoku-by-L2G-20050714.svg.png
Input: board =
[["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"]]
Output: true
思路:
1.從左上角的點開始往右和往下檢查是否有重複數字,上和左不用檢查因為已經檢查過了
每個點都檢查了之後到第二步驟
2.遍歷每個九宮格的左上角座標,並用一個set檢查3x3範圍是否有重複數字。
JavaCode: