From 1ec221538b94ee6084a805ada7c5c1b81198d43e Mon Sep 17 00:00:00 2001 From: rain84 Date: Wed, 10 Jul 2024 00:35:56 +0300 Subject: [PATCH 1/6] feat: add js solution to lc problem: No.0216 --- .../0216.Combination Sum III/README.md | 26 +++++++++++++++++++ .../0216.Combination Sum III/README_EN.md | 26 +++++++++++++++++++ .../0216.Combination Sum III/Solution.js | 21 +++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 solution/0200-0299/0216.Combination Sum III/Solution.js diff --git a/solution/0200-0299/0216.Combination Sum III/README.md b/solution/0200-0299/0216.Combination Sum III/README.md index e7ab082b83fff..3b44927e08047 100644 --- a/solution/0200-0299/0216.Combination Sum III/README.md +++ b/solution/0200-0299/0216.Combination Sum III/README.md @@ -222,6 +222,32 @@ function combinationSum3(k: number, n: number): number[][] { } ``` +#### JavaScript + +```js +function combinationSum3(k, n) { + const ans = []; + const t = []; + const dfs = (i, s) => { + if (s === 0) { + if (t.length === k) { + ans.push(t.slice()); + } + return; + } + if (i > 9 || i > s || t.length >= k) { + return; + } + t.push(i); + dfs(i + 1, s - i); + t.pop(); + dfs(i + 1, s); + }; + dfs(1, n); + return ans; +} +``` + #### Rust ```rust diff --git a/solution/0200-0299/0216.Combination Sum III/README_EN.md b/solution/0200-0299/0216.Combination Sum III/README_EN.md index db3075f058166..03826c44911c0 100644 --- a/solution/0200-0299/0216.Combination Sum III/README_EN.md +++ b/solution/0200-0299/0216.Combination Sum III/README_EN.md @@ -221,6 +221,32 @@ function combinationSum3(k: number, n: number): number[][] { } ``` +#### JavaScript + +```js +function combinationSum3(k, n) { + const ans = []; + const t = []; + const dfs = (i, s) => { + if (s === 0) { + if (t.length === k) { + ans.push(t.slice()); + } + return; + } + if (i > 9 || i > s || t.length >= k) { + return; + } + t.push(i); + dfs(i + 1, s - i); + t.pop(); + dfs(i + 1, s); + }; + dfs(1, n); + return ans; +} +``` + #### Rust ```rust diff --git a/solution/0200-0299/0216.Combination Sum III/Solution.js b/solution/0200-0299/0216.Combination Sum III/Solution.js new file mode 100644 index 0000000000000..69dbc4fb0b05b --- /dev/null +++ b/solution/0200-0299/0216.Combination Sum III/Solution.js @@ -0,0 +1,21 @@ +function combinationSum3(k, n) { + const ans = []; + const t = []; + const dfs = (i, s) => { + if (s === 0) { + if (t.length === k) { + ans.push(t.slice()); + } + return; + } + if (i > 9 || i > s || t.length >= k) { + return; + } + t.push(i); + dfs(i + 1, s - i); + t.pop(); + dfs(i + 1, s); + }; + dfs(1, n); + return ans; +} From 80175ebcd15ec511136d5e4711b55c7b68d25d95 Mon Sep 17 00:00:00 2001 From: rain84 Date: Wed, 10 Jul 2024 00:39:01 +0300 Subject: [PATCH 2/6] feat: add js solution to lc problem: No.0216 --- .../0216.Combination Sum III/README.md | 27 +++++++++++++++++++ .../0216.Combination Sum III/README_EN.md | 27 +++++++++++++++++++ .../0216.Combination Sum III/Solution2.js | 22 +++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 solution/0200-0299/0216.Combination Sum III/Solution2.js diff --git a/solution/0200-0299/0216.Combination Sum III/README.md b/solution/0200-0299/0216.Combination Sum III/README.md index 3b44927e08047..892686f6afc05 100644 --- a/solution/0200-0299/0216.Combination Sum III/README.md +++ b/solution/0200-0299/0216.Combination Sum III/README.md @@ -483,6 +483,33 @@ function combinationSum3(k: number, n: number): number[][] { } ``` +#### JavaScript + +```js +function combinationSum3(k, n) { + const ans = []; + const t = []; + const dfs = (i, s) => { + if (s === 0) { + if (t.length === k) { + ans.push(t.slice()); + } + return; + } + if (i > 9 || i > s || t.length >= k) { + return; + } + for (let j = i; j <= 9; ++j) { + t.push(j); + dfs(j + 1, s - j); + t.pop(); + } + }; + dfs(1, n); + return ans; +} +``` + #### C# ```cs diff --git a/solution/0200-0299/0216.Combination Sum III/README_EN.md b/solution/0200-0299/0216.Combination Sum III/README_EN.md index 03826c44911c0..1ff2530a471bb 100644 --- a/solution/0200-0299/0216.Combination Sum III/README_EN.md +++ b/solution/0200-0299/0216.Combination Sum III/README_EN.md @@ -482,6 +482,33 @@ function combinationSum3(k: number, n: number): number[][] { } ``` +#### JavaScript + +```js +function combinationSum3(k, n) { + const ans = []; + const t = []; + const dfs = (i, s) => { + if (s === 0) { + if (t.length === k) { + ans.push(t.slice()); + } + return; + } + if (i > 9 || i > s || t.length >= k) { + return; + } + for (let j = i; j <= 9; ++j) { + t.push(j); + dfs(j + 1, s - j); + t.pop(); + } + }; + dfs(1, n); + return ans; +} +``` + #### C# ```cs diff --git a/solution/0200-0299/0216.Combination Sum III/Solution2.js b/solution/0200-0299/0216.Combination Sum III/Solution2.js new file mode 100644 index 0000000000000..09c26a0619553 --- /dev/null +++ b/solution/0200-0299/0216.Combination Sum III/Solution2.js @@ -0,0 +1,22 @@ +function combinationSum3(k, n) { + const ans = []; + const t = []; + const dfs = (i, s) => { + if (s === 0) { + if (t.length === k) { + ans.push(t.slice()); + } + return; + } + if (i > 9 || i > s || t.length >= k) { + return; + } + for (let j = i; j <= 9; ++j) { + t.push(j); + dfs(j + 1, s - j); + t.pop(); + } + }; + dfs(1, n); + return ans; +} From 0edbc6eefaea2b7383406649184bb89b9dea61a7 Mon Sep 17 00:00:00 2001 From: rain84 Date: Wed, 10 Jul 2024 00:41:45 +0300 Subject: [PATCH 3/6] feat: add js solution to lc problem: No.0216 --- .../0216.Combination Sum III/README.md | 33 ++++++++++++++++++ .../0216.Combination Sum III/README_EN.md | 34 +++++++++++++++++++ .../0216.Combination Sum III/Solution3.js | 28 +++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 solution/0200-0299/0216.Combination Sum III/Solution3.js diff --git a/solution/0200-0299/0216.Combination Sum III/README.md b/solution/0200-0299/0216.Combination Sum III/README.md index 892686f6afc05..4e69a75a563b3 100644 --- a/solution/0200-0299/0216.Combination Sum III/README.md +++ b/solution/0200-0299/0216.Combination Sum III/README.md @@ -688,6 +688,39 @@ function bitCount(i: number): number { } ``` +#### JavaScript + +```js +function combinationSum3(k, n) { + const ans = []; + for (let mask = 0; mask < 1 << 9; ++mask) { + if (bitCount(mask) === k) { + const t = []; + let s = 0; + for (let i = 0; i < 9; ++i) { + if (mask & (1 << i)) { + t.push(i + 1); + s += i + 1; + } + } + if (s === n) { + ans.push(t); + } + } + } + return ans; +} + +function bitCount(i) { + i = i - ((i >>> 1) & 0x55555555); + i = (i & 0x33333333) + ((i >>> 2) & 0x33333333); + i = (i + (i >>> 4)) & 0x0f0f0f0f; + i = i + (i >>> 8); + i = i + (i >>> 16); + return i & 0x3f; +} +``` + #### C# ```cs diff --git a/solution/0200-0299/0216.Combination Sum III/README_EN.md b/solution/0200-0299/0216.Combination Sum III/README_EN.md index 1ff2530a471bb..f2e94bcd0d1d6 100644 --- a/solution/0200-0299/0216.Combination Sum III/README_EN.md +++ b/solution/0200-0299/0216.Combination Sum III/README_EN.md @@ -676,6 +676,40 @@ function combinationSum3(k: number, n: number): number[][] { } return ans; } +``` + +#### JavaScript + +```js +function combinationSum3(k, n) { + const ans = []; + for (let mask = 0; mask < 1 << 9; ++mask) { + if (bitCount(mask) === k) { + const t = []; + let s = 0; + for (let i = 0; i < 9; ++i) { + if (mask & (1 << i)) { + t.push(i + 1); + s += i + 1; + } + } + if (s === n) { + ans.push(t); + } + } + } + return ans; +} + +function bitCount(i) { + i = i - ((i >>> 1) & 0x55555555); + i = (i & 0x33333333) + ((i >>> 2) & 0x33333333); + i = (i + (i >>> 4)) & 0x0f0f0f0f; + i = i + (i >>> 8); + i = i + (i >>> 16); + return i & 0x3f; +} +``` function bitCount(i: number): number { i = i - ((i >>> 1) & 0x55555555); diff --git a/solution/0200-0299/0216.Combination Sum III/Solution3.js b/solution/0200-0299/0216.Combination Sum III/Solution3.js new file mode 100644 index 0000000000000..293d099a76072 --- /dev/null +++ b/solution/0200-0299/0216.Combination Sum III/Solution3.js @@ -0,0 +1,28 @@ +function combinationSum3(k, n) { + const ans = []; + for (let mask = 0; mask < 1 << 9; ++mask) { + if (bitCount(mask) === k) { + const t = []; + let s = 0; + for (let i = 0; i < 9; ++i) { + if (mask & (1 << i)) { + t.push(i + 1); + s += i + 1; + } + } + if (s === n) { + ans.push(t); + } + } + } + return ans; +} + +function bitCount(i) { + i = i - ((i >>> 1) & 0x55555555); + i = (i & 0x33333333) + ((i >>> 2) & 0x33333333); + i = (i + (i >>> 4)) & 0x0f0f0f0f; + i = i + (i >>> 8); + i = i + (i >>> 16); + return i & 0x3f; +} From 58d52153a4a696acb9bac4594e9f22f0ce544b17 Mon Sep 17 00:00:00 2001 From: rain84 Date: Tue, 9 Jul 2024 21:42:38 +0000 Subject: [PATCH 4/6] style: format code and docs with prettier --- .../0216.Combination Sum III/README_EN.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/solution/0200-0299/0216.Combination Sum III/README_EN.md b/solution/0200-0299/0216.Combination Sum III/README_EN.md index f2e94bcd0d1d6..dfa97694f70ed 100644 --- a/solution/0200-0299/0216.Combination Sum III/README_EN.md +++ b/solution/0200-0299/0216.Combination Sum III/README_EN.md @@ -712,14 +712,15 @@ function bitCount(i) { ``` function bitCount(i: number): number { - i = i - ((i >>> 1) & 0x55555555); - i = (i & 0x33333333) + ((i >>> 2) & 0x33333333); - i = (i + (i >>> 4)) & 0x0f0f0f0f; - i = i + (i >>> 8); - i = i + (i >>> 16); - return i & 0x3f; +i = i - ((i >>> 1) & 0x55555555); +i = (i & 0x33333333) + ((i >>> 2) & 0x33333333); +i = (i + (i >>> 4)) & 0x0f0f0f0f; +i = i + (i >>> 8); +i = i + (i >>> 16); +return i & 0x3f; } -``` + +```` #### C# @@ -754,7 +755,7 @@ public class Solution { return cnt; } } -``` +```` From 70c1c7f9dd06c3aa9e042b8373678f889d773624 Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Wed, 10 Jul 2024 08:24:56 +0800 Subject: [PATCH 5/6] Update README_EN.md --- .../0216.Combination Sum III/README_EN.md | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/solution/0200-0299/0216.Combination Sum III/README_EN.md b/solution/0200-0299/0216.Combination Sum III/README_EN.md index dfa97694f70ed..dcaf5c7e02f94 100644 --- a/solution/0200-0299/0216.Combination Sum III/README_EN.md +++ b/solution/0200-0299/0216.Combination Sum III/README_EN.md @@ -676,6 +676,15 @@ function combinationSum3(k: number, n: number): number[][] { } return ans; } + +function bitCount(i: number) { + i = i - ((i >>> 1) & 0x55555555); + i = (i & 0x33333333) + ((i >>> 2) & 0x33333333); + i = (i + (i >>> 4)) & 0x0f0f0f0f; + i = i + (i >>> 8); + i = i + (i >>> 16); + return i & 0x3f; +} ``` #### JavaScript @@ -711,17 +720,6 @@ function bitCount(i) { } ``` -function bitCount(i: number): number { -i = i - ((i >>> 1) & 0x55555555); -i = (i & 0x33333333) + ((i >>> 2) & 0x33333333); -i = (i + (i >>> 4)) & 0x0f0f0f0f; -i = i + (i >>> 8); -i = i + (i >>> 16); -return i & 0x3f; -} - -```` - #### C# ```cs @@ -755,7 +753,7 @@ public class Solution { return cnt; } } -```` +``` From 6b060801bea8c74ad60459248c8549354dfe7b06 Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Wed, 10 Jul 2024 08:28:22 +0800 Subject: [PATCH 6/6] Update README_EN.md --- solution/0200-0299/0216.Combination Sum III/README_EN.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/0200-0299/0216.Combination Sum III/README_EN.md b/solution/0200-0299/0216.Combination Sum III/README_EN.md index dcaf5c7e02f94..a431318aa01d7 100644 --- a/solution/0200-0299/0216.Combination Sum III/README_EN.md +++ b/solution/0200-0299/0216.Combination Sum III/README_EN.md @@ -677,7 +677,7 @@ function combinationSum3(k: number, n: number): number[][] { return ans; } -function bitCount(i: number) { +function bitCount(i: number): number { i = i - ((i >>> 1) & 0x55555555); i = (i & 0x33333333) + ((i >>> 2) & 0x33333333); i = (i + (i >>> 4)) & 0x0f0f0f0f;