File tree Expand file tree Collapse file tree 3 files changed +79
-0
lines changed
solution/0000-0099/0052.N-Queens II Expand file tree Collapse file tree 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 {
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
Original file line number Diff line number Diff 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 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