Skip to content

Commit 5b768cd

Browse files
authored
feat: add js solution to lc problem: No.0052 (#3232)
1 parent 0f76252 commit 5b768cd

File tree

3 files changed

+79
-0
lines changed

3 files changed

+79
-0
lines changed

solution/0000-0099/0052.N-Queens II/README.md

+28
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,34 @@ function totalNQueens(n: number): number {
220220
}
221221
```
222222

223+
#### JavaScript
224+
225+
```js
226+
function totalNQueens(n) {
227+
const cols = Array(10).fill(false);
228+
const dg = Array(20).fill(false);
229+
const udg = Array(20).fill(false);
230+
let ans = 0;
231+
const dfs = i => {
232+
if (i === n) {
233+
++ans;
234+
return;
235+
}
236+
for (let j = 0; j < n; ++j) {
237+
let [a, b] = [i + j, i - j + n];
238+
if (cols[j] || dg[a] || udg[b]) {
239+
continue;
240+
}
241+
cols[j] = dg[a] = udg[b] = true;
242+
dfs(i + 1);
243+
cols[j] = dg[a] = udg[b] = false;
244+
}
245+
};
246+
dfs(0);
247+
return ans;
248+
}
249+
```
250+
223251
#### C#
224252

225253
```cs

solution/0000-0099/0052.N-Queens II/README_EN.md

+28
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,34 @@ function totalNQueens(n: number): number {
214214
}
215215
```
216216

217+
#### JavaScript
218+
219+
```js
220+
function totalNQueens(n) {
221+
const cols = Array(10).fill(false);
222+
const dg = Array(20).fill(false);
223+
const udg = Array(20).fill(false);
224+
let ans = 0;
225+
const dfs = i => {
226+
if (i === n) {
227+
++ans;
228+
return;
229+
}
230+
for (let j = 0; j < n; ++j) {
231+
let [a, b] = [i + j, i - j + n];
232+
if (cols[j] || dg[a] || udg[b]) {
233+
continue;
234+
}
235+
cols[j] = dg[a] = udg[b] = true;
236+
dfs(i + 1);
237+
cols[j] = dg[a] = udg[b] = false;
238+
}
239+
};
240+
dfs(0);
241+
return ans;
242+
}
243+
```
244+
217245
#### C#
218246

219247
```cs
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
function totalNQueens(n) {
2+
const cols = Array(10).fill(false);
3+
const dg = Array(20).fill(false);
4+
const udg = Array(20).fill(false);
5+
let ans = 0;
6+
const dfs = i => {
7+
if (i === n) {
8+
++ans;
9+
return;
10+
}
11+
for (let j = 0; j < n; ++j) {
12+
let [a, b] = [i + j, i - j + n];
13+
if (cols[j] || dg[a] || udg[b]) {
14+
continue;
15+
}
16+
cols[j] = dg[a] = udg[b] = true;
17+
dfs(i + 1);
18+
cols[j] = dg[a] = udg[b] = false;
19+
}
20+
};
21+
dfs(0);
22+
return ans;
23+
}

0 commit comments

Comments
 (0)