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

集合的所有子集(一)

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

全部评论

相关推荐

10-30 16:31
重庆大学 Java
代码飞升_不回私信人...:你说你善于学习,大家都会说。你说你是985,985会替你表达一切
点赞 评论 收藏
分享
程序员花海_:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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