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

集合的所有子集(一)

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

集合问题看作回溯中的多叉树深度优先遍历,关键部分是二维数组头部的index和走过的路径path for循环中的push和pop操作是对当前位的数字替换,bt回溯是增加位的操作

 * 
 * @param A int整型一维数组 
 * @return int整型二维数组
 */
 function subsets( A ) { 
  // write code here
  let res = []
  let path = [] //存放当前已选的数字
    function bt(idx) { //idx 记录当前指向的索引 
        res.push(path.slice()) 
         for(let i =idx;i<A.length;i++){ //索引以此向后移动表明以元素为首的数组集合
            path.push(A[i]) //当前(新)元素记录 
            bt(i+1) //当前已记录元素的基础上新增一位(深度)
            path.pop() //当前(新)元素已记录 出栈
         }
    }
    bt(0)  
  return  res
}

module.exports = {
  subsets : subsets
};
全部评论
感谢大佬
点赞 回复 分享
发布于 2022-06-02 17:16

相关推荐

11-09 14:54
已编辑
华南农业大学 产品经理
大拿老师:这个简历,连手机号码和照片都没打码,那为什么关键要素求职职位就不写呢? 从上往下看,都没看出自己到底是产品经理的简历,还是电子硬件的简历? 这是一个大问题,当然,更大的问题是实习经历的描述是不对的 不要只是去写实习流程,陈平,怎么去开会?怎么去讨论? 面试问的是你的产品功能点,是怎么设计的?也就是要写项目的亮点,有什么功能?这个功能有什么难处?怎么去解决的? 实习流程大家都一样,没什么优势,也没有提问点,没有提问,你就不得分 另外,你要明确你投的是什么职位,如果投的是产品职位,你的项目经历写的全都是跟产品无关的,那你的简历就没用 你的面试官必然是一个资深的产品经理,他不会去问那些计算机类的编程项目 所以这种四不像的简历,在校招是大忌
点赞 评论 收藏
分享
10-24 13:36
门头沟学院 Java
Zzzzoooo:更新:今天下午有hr联系我去不去客户端,拒了
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务