Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit b2f7317

Browse files
committed
feat: 子集和组合
1 parent e99d8bb commit b2f7317

File tree

2 files changed

+60
-0
lines changed

2 files changed

+60
-0
lines changed

递归与回溯/子集-78.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number[][]}
4+
*/
5+
let subsets = function (nums) {
6+
let res = []
7+
let n = nums.length
8+
if (n === 0) {
9+
return res
10+
}
11+
12+
let helper = (start, prev, targetLength) => {
13+
if (start > n) {
14+
return
15+
}
16+
if (prev.length === targetLength) {
17+
res.push(prev)
18+
return
19+
}
20+
21+
for (let i = start; i < n; i++) {
22+
let cur = nums[i]
23+
helper(i + 1, prev.concat(cur), targetLength)
24+
}
25+
}
26+
27+
for (let j = 1; j <= nums.length; j++) {
28+
helper(0, [], j)
29+
}
30+
31+
return [[], ...res]
32+
}

递归与回溯/组合-77.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/**
2+
* @param {number} n
3+
* @param {number} k
4+
* @return {number[][]}
5+
*/
6+
let combine = function (n, k) {
7+
let ret = []
8+
9+
let helper = (start, prev) => {
10+
let len = prev.length
11+
if (len === k) {
12+
ret.push(prev)
13+
return
14+
}
15+
16+
if (start > n) {
17+
return
18+
}
19+
20+
for (let i = start; i <= n; i++) {
21+
helper(i + 1, prev.concat(i))
22+
}
23+
}
24+
helper(1, [])
25+
return ret
26+
}
27+
28+
console.log(combine(4, 2))

0 commit comments

Comments
 (0)