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

集合的所有子集(一)

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限制了遍历的顺序,所以终止条件自然而然的缺省,元素的顺序也得到了确定。

全部评论

相关推荐

死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
11-09 01:22
已编辑
东南大学 Java
高级特工穿山甲:羡慕,我秋招有家企业在茶馆组织线下面试,约我过去“喝茶详谈”😢结果我去了发现原来是人家喝茶我看着
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务