-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path036.js
More file actions
42 lines (38 loc) · 971 Bytes
/
036.js
File metadata and controls
42 lines (38 loc) · 971 Bytes
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) {
var rowNum = 9;
var colNum = 9;
for(var i = 0; i < rowNum; ++i) {
var row = board[i];
var hash = {};
for (var j = 0; j < colNum; ++j) {
if (row[j] === ".") continue;
if (hash[row[j]]) return false;
hash[row[j]] = true;
}
}
for (var i = 0; i < colNum; ++i) {
var hash = {};
for (var j = 0; j < rowNum; ++j) {
if (board[j][i] === ".") continue;
if (hash[board[j][i]]) return false;
hash[board[j][i]] = true;
}
}
for (var i = 0; i < 3; ++i) {
for (var j = 0; j < 3; ++j) {
var hash = {};
for (var k = 0; k < 3; ++k) {
for (var l = 0; l < 3; ++l) {
if (board[i * 3 + k][j * 3 + l] === ".") continue;
if (hash[board[i * 3 + k][j * 3 + l]]) return false;
hash[board[i * 3 + k][j * 3 + l]] = true;
}
}
}
}
return true;
};