-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.js
42 lines (42 loc) · 932 Bytes
/
main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/**
* @param {character[][]} board
* @return {boolean}
*/
var isValidSudoku = function (board) {
let used = {}
for (let i = 0; i < 9; i++) {
used = {}
// fixed row
for (let j = 0; j < 9; j++) {
if (board[i][j] !== '.' && board[i][j] in used) {
return false
} else {
used[board[i][j]] = 1
}
}
// fixed col
used = {}
for (let j = 0; j < 9; j++) {
if (board[j][i] !== '.' && board[j][i] in used) {
return false
} else {
used[board[j][i]] = 1
}
}
}
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
used = {}
for (let k = i * 3; k < 3 * (i + 1); k++) {
for (let l = j * 3; l < 3 * (j + 1); l++) {
if (board[k][l] !== '.' && board[k][l] in used) {
return false
} else {
used[board[k][l]] = 1
}
}
}
}
}
return true
}