Shu-How Zの小窝

Loading...

LeetCode:78.子集

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));

'

posted @ 2025-01-19 19:37  KooTeam  阅读(15)  评论(0)    收藏  举报