From ae37e1f2221933bf0cfe36c8fe72320923216932 Mon Sep 17 00:00:00 2001 From: rain84 Date: Mon, 8 Jul 2024 21:54:12 +0300 Subject: [PATCH] feat: add js solution to lc problem: No.0052 --- solution/0000-0099/0052.N-Queens II/README.md | 28 +++++++++++++++++++ .../0000-0099/0052.N-Queens II/README_EN.md | 28 +++++++++++++++++++ .../0000-0099/0052.N-Queens II/Solution.js | 23 +++++++++++++++ 3 files changed, 79 insertions(+) create mode 100644 solution/0000-0099/0052.N-Queens II/Solution.js diff --git a/solution/0000-0099/0052.N-Queens II/README.md b/solution/0000-0099/0052.N-Queens II/README.md index f78b7ece53879..05c8e6663930e 100644 --- a/solution/0000-0099/0052.N-Queens II/README.md +++ b/solution/0000-0099/0052.N-Queens II/README.md @@ -220,6 +220,34 @@ function totalNQueens(n: number): number { } ``` +#### JavaScript + +```js +function totalNQueens(n) { + const cols = Array(10).fill(false); + const dg = Array(20).fill(false); + const udg = Array(20).fill(false); + let ans = 0; + const dfs = i => { + if (i === n) { + ++ans; + return; + } + for (let j = 0; j < n; ++j) { + let [a, b] = [i + j, i - j + n]; + if (cols[j] || dg[a] || udg[b]) { + continue; + } + cols[j] = dg[a] = udg[b] = true; + dfs(i + 1); + cols[j] = dg[a] = udg[b] = false; + } + }; + dfs(0); + return ans; +} +``` + #### C# ```cs diff --git a/solution/0000-0099/0052.N-Queens II/README_EN.md b/solution/0000-0099/0052.N-Queens II/README_EN.md index 58e24c33a6dfb..de246c3a2745d 100644 --- a/solution/0000-0099/0052.N-Queens II/README_EN.md +++ b/solution/0000-0099/0052.N-Queens II/README_EN.md @@ -214,6 +214,34 @@ function totalNQueens(n: number): number { } ``` +#### JavaScript + +```js +function totalNQueens(n) { + const cols = Array(10).fill(false); + const dg = Array(20).fill(false); + const udg = Array(20).fill(false); + let ans = 0; + const dfs = i => { + if (i === n) { + ++ans; + return; + } + for (let j = 0; j < n; ++j) { + let [a, b] = [i + j, i - j + n]; + if (cols[j] || dg[a] || udg[b]) { + continue; + } + cols[j] = dg[a] = udg[b] = true; + dfs(i + 1); + cols[j] = dg[a] = udg[b] = false; + } + }; + dfs(0); + return ans; +} +``` + #### C# ```cs diff --git a/solution/0000-0099/0052.N-Queens II/Solution.js b/solution/0000-0099/0052.N-Queens II/Solution.js new file mode 100644 index 0000000000000..9e54ea5796417 --- /dev/null +++ b/solution/0000-0099/0052.N-Queens II/Solution.js @@ -0,0 +1,23 @@ +function totalNQueens(n) { + const cols = Array(10).fill(false); + const dg = Array(20).fill(false); + const udg = Array(20).fill(false); + let ans = 0; + const dfs = i => { + if (i === n) { + ++ans; + return; + } + for (let j = 0; j < n; ++j) { + let [a, b] = [i + j, i - j + n]; + if (cols[j] || dg[a] || udg[b]) { + continue; + } + cols[j] = dg[a] = udg[b] = true; + dfs(i + 1); + cols[j] = dg[a] = udg[b] = false; + } + }; + dfs(0); + return ans; +}