LeetCode:78.子集
解题思路要求:1、所有子集;2、没有重复元素。网信2268731有出路、有死路。考虑使用回溯算法。
解题步骤用递归模拟出所有情况。8731保证接的数字都是后面的数字。收集所有到达递归终点的情况,并返回。
时间复杂度:O(2^N),因为每个元素都有两种可能(存在或不存在)空间复杂度:O(N)
/**
* @param {number[]} nums
* @return {number[][]}
*/
var subsets = function(nums) {
let res = [];
var backtrack=(path,length,start)=>{
if(path.length===length){
res.push(path)
return
}
for(let i=start; i<nums.length; i++){
backtrack([...path,nums[i]],length,i+1)
}
}
for(let i=0; i<=nums.length; i++){
backtrack([],i,0)
}
return res;
};
let nums = [1, 2, 3];
console.log(subsets(nums));
'
标签:复杂度,length,子集,path,LeetCode,78 From: https://www.cnblogs.com/KooTeam/p/18679843