1
/**
2
* @param {character[][]} board
3
* @return {boolean}
4
*/
5
var isValidSudoku = function (board) {
6
let rowMap = new Map();
7
let colMap = new Map();
8
let square = new Map();
9
for (let i = 0; i < board.length; i++) {
10
for (let j = 0; j < board[0].length; j++) {
11
if (board[i][j] === ".") continue;
12
if (!rowMap.has(i)) rowMap.set(i, new Set());
13
if (!colMap.has(j)) colMap.set(j, new Set());
14
let squareKey = Math.floor(i / 3) + "#" + Math.floor(j / 3);
15
if (!square.has(squareKey)) square.set(squareKey, new Set());
16
let rowSet = rowMap.get(i);
17
let colSet = colMap.get(j);
18
let squareSet = square.get(squareKey);
19
if (
20
rowSet.has(board[i][j]) ||
21
colSet.has(board[i][j]) ||
22
squareSet.has(board[i][j])
23
)
24
return false;
25
rowSet.add(board[i][j]);
26
colSet.add(board[i][j]);
27
squareSet.add(board[i][j]);
28
rowMap.set(i, rowSet);
29
colMap.set(j, colSet);
30
square.set(squareKey, squareSet);
31
}
32
}
33
return true;
34
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0