Skip to content

Commit da5d037

Browse files
committed
https://leetcode.cn/problems/combination-sum-iii/
1 parent 569c882 commit da5d037

File tree

3 files changed

+39
-2
lines changed

3 files changed

+39
-2
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ leetcode 测试
1010

1111
##### 包含的内容如下
1212

13+
https://leetcode.cn/problems/combination-sum-iii/
14+
1315
https://leetcode.cn/problems/range-product-queries-of-powers/
1416

1517
https://leetcode.cn/problems/number-of-valid-clock-times/

combination-sum-iii/index.ts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
function combinationSum3(k: number, n: number): number[][] {
2+
if (n < k || n > 45) {
3+
return [];
4+
}
5+
const nums = Array(Math.min(9, n - k + 1))
6+
.fill(0)
7+
.map((_, i) => i + 1);
8+
const visited = new Set<number>();
9+
const ans: number[][] = [];
10+
function dfs(path: number[], sum: number): void {
11+
// console.log(path, sum);
12+
if (sum > n || path.length > k) return;
13+
14+
if (
15+
path.length >= 2 && path[path.length - 1] <= path[path.length - 2]
16+
) {
17+
return;
18+
}
19+
if (path.length === k && sum === n) {
20+
ans.push([...path]);
21+
return;
22+
}
23+
for (const v of nums) {
24+
if (visited.has(v)) continue;
25+
path.push(v);
26+
visited.add(v);
27+
dfs(path, sum + v);
28+
path.pop();
29+
visited.delete(v);
30+
}
31+
}
32+
dfs([], 0);
33+
return ans;
34+
}
35+
export default combinationSum3;

fancy-sequence/Fancy.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ export default function Fancy(): Fancy {
2929
r_mult = (r_mult * multiplicativeInverse(m, MOD)) % MOD;
3030
}
3131

32-
const getIndex = function (idx: number): number {
32+
function getIndex(idx: number): number {
3333
if (idx >= values.length) return -1;
3434
return Number((mult * BigInt(values[idx]) + add) % MOD);
35-
};
35+
}
3636
return { getIndex, multAll, addAll, append };
3737
}
3838
export function multiplicativeInverse(x: number, mod: bigint): bigint {

0 commit comments

Comments
 (0)