子集
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
定义res数组存储结果
每个子集为状态变量,集合的元素个数为条件变量
子集的元素数量小于等于集合的元素数量为限制条件,满足条件时添加到结果数组,否则回退到上一步
下一层搜索的集合需要去掉已添加到状态变量中的元素
var subsets = function(nums) {
let res = [];
let n = nums.length;
function back(path,i){
if(i <= n){
res.push(path);
}
for(let j = i;j < n;j++){
path.push(nums[j]);
back(path.slice(0),j+1);
path.pop();
}
}
back([],0);
return res;
};
最后更新于
这有帮助吗?