MCPcopy Create free account
hub / github.com/neetcode-gh/leetcode / totalNQueens

Function totalNQueens

javascript/0052-n-queens-ii.js:1–33  ·  view source on GitHub ↗
(n)

Source from the content-addressed store, hash-verified

1var totalNQueens = function (n) {
2 let col = new Set();
3 let posDiag = new Set(); // (r + c)
4 let negDiag = new Set(); // (r - c)
5
6 let board = new Array(n).fill().map(() => new Array(n).fill('.'));
7 let res = 0;
8
9 function backtrack(r) {
10 if (r === n) {
11 res += 1;
12 return;
13 }
14
15 for (let c = 0; c < n; c++) {
16 if (col.has(c) || posDiag.has(r + c) || negDiag.has(r - c)) {
17 continue;
18 }
19
20 col.add(c);
21 posDiag.add(r + c);
22 negDiag.add(r - c);
23
24 backtrack(r + 1);
25
26 col.delete(c);
27 posDiag.delete(r + c);
28 negDiag.delete(r - c);
29 }
30 }
31 backtrack(0);
32 return res;
33};

Callers

nothing calls this directly

Calls 1

backtrackFunction · 0.70

Tested by

no test coverage detected