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

集合的所有子集(一)

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

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务