Skip to content

Commit 0edbc6e

Browse files
committed
feat: add js solution to lc problem: No.0216
1 parent 80175eb commit 0edbc6e

File tree

3 files changed

+95
-0
lines changed

3 files changed

+95
-0
lines changed

solution/0200-0299/0216.Combination Sum III/README.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -688,6 +688,39 @@ function bitCount(i: number): number {
688688
}
689689
```
690690

691+
#### JavaScript
692+
693+
```js
694+
function combinationSum3(k, n) {
695+
const ans = [];
696+
for (let mask = 0; mask < 1 << 9; ++mask) {
697+
if (bitCount(mask) === k) {
698+
const t = [];
699+
let s = 0;
700+
for (let i = 0; i < 9; ++i) {
701+
if (mask & (1 << i)) {
702+
t.push(i + 1);
703+
s += i + 1;
704+
}
705+
}
706+
if (s === n) {
707+
ans.push(t);
708+
}
709+
}
710+
}
711+
return ans;
712+
}
713+
714+
function bitCount(i) {
715+
i = i - ((i >>> 1) & 0x55555555);
716+
i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);
717+
i = (i + (i >>> 4)) & 0x0f0f0f0f;
718+
i = i + (i >>> 8);
719+
i = i + (i >>> 16);
720+
return i & 0x3f;
721+
}
722+
```
723+
691724
#### C#
692725

693726
```cs

solution/0200-0299/0216.Combination Sum III/README_EN.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -676,6 +676,40 @@ function combinationSum3(k: number, n: number): number[][] {
676676
}
677677
return ans;
678678
}
679+
```
680+
681+
#### JavaScript
682+
683+
```js
684+
function combinationSum3(k, n) {
685+
const ans = [];
686+
for (let mask = 0; mask < 1 << 9; ++mask) {
687+
if (bitCount(mask) === k) {
688+
const t = [];
689+
let s = 0;
690+
for (let i = 0; i < 9; ++i) {
691+
if (mask & (1 << i)) {
692+
t.push(i + 1);
693+
s += i + 1;
694+
}
695+
}
696+
if (s === n) {
697+
ans.push(t);
698+
}
699+
}
700+
}
701+
return ans;
702+
}
703+
704+
function bitCount(i) {
705+
i = i - ((i >>> 1) & 0x55555555);
706+
i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);
707+
i = (i + (i >>> 4)) & 0x0f0f0f0f;
708+
i = i + (i >>> 8);
709+
i = i + (i >>> 16);
710+
return i & 0x3f;
711+
}
712+
```
679713

680714
function bitCount(i: number): number {
681715
i = i - ((i >>> 1) & 0x55555555);
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
function combinationSum3(k, n) {
2+
const ans = [];
3+
for (let mask = 0; mask < 1 << 9; ++mask) {
4+
if (bitCount(mask) === k) {
5+
const t = [];
6+
let s = 0;
7+
for (let i = 0; i < 9; ++i) {
8+
if (mask & (1 << i)) {
9+
t.push(i + 1);
10+
s += i + 1;
11+
}
12+
}
13+
if (s === n) {
14+
ans.push(t);
15+
}
16+
}
17+
}
18+
return ans;
19+
}
20+
21+
function bitCount(i) {
22+
i = i - ((i >>> 1) & 0x55555555);
23+
i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);
24+
i = (i + (i >>> 4)) & 0x0f0f0f0f;
25+
i = i + (i >>> 8);
26+
i = i + (i >>> 16);
27+
return i & 0x3f;
28+
}

0 commit comments

Comments
 (0)