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

集合的所有子集(一)

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

/**
 * 
 * @param A int整型一维数组 
 * @return int整型二维数组
 */
function subsets( A ) {
    if(A.length === 0) return A;

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

    let res = [], track = [];

    const backtrack = function (A, track, index) {

        res.push([...track]);

        for(let i = index; i < A.length; i++) {

            track.push(A[i]);
        
            backtrack(A, track, i + 1);

            track.pop();
        }
    }

    backtrack(A, track, 0);

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

题目只是要求子集内的元素是按顺序,不是说返回的结果子集顺序是多叉树的层序顺序。

只是要注意 [] 返回的是 [] 不是 [[]]。

这道题,由index限制了遍历的顺序,所以终止条件自然而然的缺省,元素的顺序也得到了确定。

全部评论

相关推荐

点赞 评论 收藏
分享
牛客154160166号:9月底还给我发短信,好奇怪,我24届的
点赞 评论 收藏
分享
粗心的雪碧不放弃:纯学历问题,我这几个月也是一直优化自己的简历,后来发现优化到我自己都觉得牛逼的时候,发现面试数量也没有提升,真就纯学历问题
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务