题解 | #集合的所有子集(二)#

集合的所有子集(二)

https://www.nowcoder.com/practice/a3dfd4bc8ae74fad9bc65d5ced7ae813

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param nums int整型一维数组 
 * @return int整型二维数组
 */
function subsets( nums ) {
    if(nums === []) return [];

    nums.sort((a, b) => a - b);

    let res = [], track = [];

    const backtrack = (nums, start, track) => {

        // 终止条件
        res.push([...track]);

        // 遍历
        for(let i = start; i < nums.length; i++) {
            if(i > start && nums[i] === nums[i-1]) continue;

            track.push(nums[i]);

            backtrack(nums, i + 1, track);

            track.pop();
        }

    }

    backtrack(nums, 0, track);

    return res;
}
module.exports = {
    subsets : subsets
};

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务