- 首页 > it技术 > >
JavaScript|JavaScript - 子集1(回溯法)
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
示例:
输入: nums = [1,2,3]
输出:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
【JavaScript|JavaScript - 子集1(回溯法)】完整代码:
/**
* @param {number[]} nums
* @return {number[][]}
*/
var subsets = function(nums) {
let arr = nums.sort((m, n)=> m - n);
let res = [];
function def(n, path) {
for (let i = 0;
i < n.length;
i++) {
let curPath = [...path, n[i]];
let copy = n.slice(i + 1);
res.push(curPath);
if (copy.length > 0) {
def(copy, curPath);
}
}
}def(arr, []);
return [...res, []];
};
推荐阅读