首页 > 其他分享 >[补档 12th Jan] 子集

[补档 12th Jan] 子集

时间:2023-01-14 23:55:41浏览次数:47  
标签:nums track 12th 补档 Jan 子集 len 数组 flags

[补档 12th Jan] 78 子集

给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。

解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。

输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
  	//初始化一个结果集合
    List<List<Integer>> res = new ArrayList<List<Integer>>();
  	//设置flags 看看是否重复
    boolean[] flags;
    public List<List<Integer>> subsets(int[] nums) {
        //得到数组的长度
        int nums_len = nums.length;
        //初始化子集
        LinkedList<Integer> track = new LinkedList<Integer>(); 
        //设置flags数组的长度
        flags = new boolean[nums_len];
        // 回溯 分别是 整数数组 起始位置下标 整数数组长度 和 初始化的子集
        backtrack(nums, 0, nums_len, track);
        return res;
    }

    // 回溯函数参数 分别是 整数数组 起始下标 整数数组长度 子集
    public void backtrack(int[] nums, int start, int len, LinkedList<Integer> track){
        //在集合中添加一个子集 这里用的是深拷贝 深拷贝就是在饮用类型成员变量时 为了引用类型的数据成员另外开辟了一个独立的内存空间 实现了真正内容上的拷贝
        res.add(new ArrayList(track));
        //取出整数数组中的元素
        for(int i = start; i < len; i++ ){
          //如果这个数没有被使用过  
          if(!flags[i]){
                //标识这个数被使用
                flags[i] = true;
                //添加到子集的最后一位中
                track.addLast(nums[i]);
            		//在进行回溯 以该数的后一位为起始位 长度仍然为整数数组的长度
            		//子集仍然为track 不过是另一个对象
                backtrack(nums, i+1, len, track);
            		//去除子集中最后一个元素
                track.removeLast();
            		//置为false 表示这个数在之后求子集的时候还可以使用
                flags[i] = false;
            }
        }
    }
}

该解法参考labuladongC++版

标签:nums,track,12th,补档,Jan,子集,len,数组,flags
From: https://www.cnblogs.com/rickierun/p/17052853.html

相关文章

  • 【补档 12th Jan】1807 替换字符串中的括号内容(每日一题)
    【补档12thJan】1807替换字符串中的括号内容(每日一题)给你一个字符串s,它包含一些括号对,每个括号中包含一个非空的键。比方说,字符串"(name)is(age)yearsold"中,有......
  • Django用户模块
    Django作为一个成熟的Web框架,其本身就自带一套User模型。具体的源码位置在django.contrib.auth.models文件中的classUser(AbstractUser)。如果我们深入探究源码,就......
  • Django请求的生命周期
    我们先来简单介绍一下Django是如何处理网络请求的。所有的网络请求,都是从Request开始,以Response结束。Django的作用就是把来自客户端的Request经过处理,返回Respo......
  • Django-scrapy图书爬取分析展示系统
    Django-scrapy图书爬取分析展示系统pythonDjango-scrapy图书数据分析展示系统pythonDjangoscrapy数据爬取系统pythonDjango数据分析系统后端:scrapy获取图书数据......
  • Python django 在线练习考试系统
    Pythondjango在线练习考试系统Pythondjango考试系统Pythondjango试卷系统前端:html css js后端:Python django数据库:MySQL功能涉及:登录,注册,登出,添加试卷,添......
  • Python django 汽车商城
    Pythondjango汽车商城汽车系统在线商城二手汽车网汽车网站django汽车推荐商城技术:Python  django数据库:MySQL前端:html  css  js涉及功能:登录,注册,登出,......
  • python Django 运维设备管理系统
    pythonDjango运维设备管理系统pythonDjango电脑管理系统pythonDjango资产管理系统python公司电脑管理系统python公司数据库管理系统 后端语言:python+Djan......
  • python Django酒店管理系统
    pythonDjango酒店管理系统pythonDjango停车场管理系统python酒店员工管理系统后端:python3.7+Django前端:html js css等数据库:MySQL功能:管理员登录、员工管理......
  • python django 医院挂号系统
    pythondjango医院挂号系统pythondjango挂号管理系统pythondjango医院挂号管理系统后端:pythondjango数据库:MySQL5.7前端:html cssjs等涉及功能:登陆、退出......
  • python django个人云盘系统
    pythondjango云盘系统pythondjango个人云盘pythondjango本地云盘Pythondjango文件系统 后端:pythondjango数据库:MySQL5.7前端:html cssjs等涉及功能:登陆......