# 练习
# LeetCode:46. 全排列
var permute = function (nums) {
const res = [];
const backtrack = (path) => {
if (path.length === nums.length) {
res.push(path)
return;
}
nums.forEach((n => {
if (path.includes(n)) {
return;
}
backtrack(path.concat(n))
}))
}
backtrack([])
return res;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# LeetCode:78. 子集
var subsets = function (nums) {
const res = [];
const backtrack = (path, l, start) => {
if(path.length == l){
res.push(path)
return
}
for (let i = start; i < nums.length; i++) {
backtrack(path.concat(nums[i]), l, i+1)
}
}
for (let i = 0; i <= nums.length; i++) {
backtrack([], i, 0)
}
return res
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
← 简介