File tree 3 files changed +79
-0
lines changed
solution/0000-0099/0052.N-Queens II
3 files changed +79
-0
lines changed Original file line number Diff line number Diff line change @@ -220,6 +220,34 @@ function totalNQueens(n: number): number {
220
220
}
221
221
```
222
222
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
+
223
251
#### C#
224
252
225
253
``` cs
Original file line number Diff line number Diff line change @@ -214,6 +214,34 @@ function totalNQueens(n: number): number {
214
214
}
215
215
```
216
216
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
+
217
245
#### C#
218
246
219
247
``` cs
Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments