Skip to content

Commit a8bd328

Browse files
add solution 036[js]
1 parent c4896bb commit a8bd328

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed

solution/036.Valid Sudoku/Solution.js

+82
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
const isValidSudoku = function(board){
2+
let existed = new Set();
3+
for(let i = 0; i < 9; i++){
4+
for(let j = 0; j < 9; j++){
5+
let number = board[i][j];
6+
if(board[i][j] !== '.'){
7+
if(existed.has(number + " in row " + i )||
8+
existed.has(number + ' in column ' + j) ||
9+
existed.has(number + 'in block ' + parseInt(i/3) + '-' + parseInt(j/3))){
10+
return false;
11+
}else{
12+
existed.add(number + " in row " + i );
13+
existed.add(number + ' in column ' + j);
14+
existed.add(number + 'in block ' + parseInt(i/3) + '-' + parseInt(j/3));
15+
}
16+
}
17+
}
18+
}
19+
return true;
20+
};
21+
22+
23+
/**
24+
* @param {character[][]} board
25+
* @return {boolean}
26+
*/
27+
const isValidSudoku2 = function(board){
28+
function lineTest(arr){
29+
for(let i = 0; i < 9; i++){
30+
for(let j = 0; j < 9; j++){
31+
for(let k = j+1; k < 9; k++){
32+
if(arr[i][j] === arr[i][k] && arr[i][j] !== '.'){
33+
return false;
34+
}
35+
}
36+
}
37+
}
38+
return true;
39+
}
40+
function columnTest(arr){
41+
for(let i = 0; i < 9; i++){
42+
for(let j = 0; j < 9;j++){
43+
for(let k = j+1; k < 9; k++){
44+
if(arr[j][i] === arr[k][i] && arr[j][i] !== '.'){
45+
46+
return false;
47+
}
48+
}
49+
}
50+
}
51+
return true;
52+
}
53+
function squareTest(arr){
54+
let p = [[1,1],[1,4],[1,7],
55+
[4,1],[4,4],[4,7],
56+
[7,1],[7,4],[7,7]];
57+
58+
for(let i = 0; i < p.length; i++){
59+
let a = [];
60+
let x = p[i][0];
61+
let y = p[i][1];
62+
a.push(arr[x-1][y-1]);
63+
a.push(arr[x-1][y]);
64+
a.push(arr[x-1][y+1]);
65+
a.push(arr[x][y-1]);
66+
a.push(arr[x][y]);
67+
a.push(arr[x][y+1]);
68+
a.push(arr[x+1][y-1]);
69+
a.push(arr[x+1][y]);
70+
a.push(arr[x+1][y+1]);
71+
for(let j = 0; j < a.length; j++){
72+
for(let k = j+1; k < a.length; k++){
73+
if(a[j] === a[k] && a[j] !== '.'){
74+
return false;
75+
}
76+
}
77+
}
78+
}
79+
return true;
80+
}
81+
return lineTest(board)&&columnTest(board)&&squareTest(board);
82+
};

0 commit comments

Comments
 (0)