首页 > 其他分享 >子集

子集

时间:2022-12-14 23:45:59浏览次数:61  
标签:nums int res ArrayList List 子集

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

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

示例 1:

输入:nums = [1,2,3]
输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
示例 2:

输入:nums = [0]
输出:[[],[0]]

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/subsets
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {
    public List<List<Integer>> subsets(int[] nums) {
        List<List<Integer>> res = new ArrayList<List<Integer>>();
        return dfs(0,nums,res,new ArrayList<Integer>());
    }
    public List<List<Integer>> dfs(int j, int[] nums, List<List<Integer>> res, ArrayList<Integer> tmp){
        //每次放入新的内存地址数据,不然影响之前存入的数据
        res.add(new ArrayList<>(tmp));
        for(int i = j;i<nums.length;i++){
            //更新每次放入的数据
            //1;1,2;1,2,3;
            tmp.add(nums[i]);
            //递归遍历;
            dfs(i+1,nums,res,tmp);
            //回溯
            tmp.remove(tmp.size()-1);
        }
        return res;
    }
}

标签:nums,int,res,ArrayList,List,子集
From: https://www.cnblogs.com/xiaochaofang/p/16983974.html

相关文章

  • leetcode-01背包-416背包子集问题
    因为每一个数字只能用一次,所以可以转化成01背包问题是从0到i-1这个区间内去寻找,时候否选择 nums[i] 是他们的和为 j-nums[i];具体推到如下:状态定义:dp[i][j]表示从数组的......
  • 剑指offer101:分割等和子集
    题目:给定一个非空的正整数数组nums,请判断能否将这些数字分成元素和相等的两部分。示例一:输入:nums=[1,5,11,5]输出:true解释:nums可以分割成[1,5,5]和[11]。......
  • 一种关于子集异或和的冷门反演
    前言本文用集合的符号表示二进制数。具体地,定义全集\(u\)是\(2^n-1\),某个二进制数\(x\)第\(t\)位是1可以理解为为\(x\)中有\(t\)号元素,否则没有。定义\(|x|......
  • 698.partition-to-k-equal-sum-subsets 划为k个相等的子集
    问题描述698.划为k个相等的子集解题思路首先,对数组按照从大到小排序,相比从小到大排序,能避免[1,1,2,2]这样的数组的误判;利用used[i]数组避免重复使用同一个元素,如果......
  • 力扣 leetcode 78. 子集
    问题描述给你一个整数数组nums,数组中的元素互不相同。返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。你可以按任意顺序返回解集。提示:1<=nums.le......
  • 算法练习:排列组合之子集合
    问题描述输入一个含有不同数字的序列,输出其所有子集合(含空集)。要求:1)集合里元素有序排列;2)输出结果不含有重复集合 举例输入序列{3,1,2}输出:{},{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3} 问......
  • poj1192 最优连通子集--树形dp
    原题链接:​​http://poj.org/problem?id=1192​​题意:其实就是一个求无向树的所有子树和的最大值分析:树形dpdp[i][0]表示以i为根,不包括i结点的子树获得最大权dp[i][1]表......
  • 对于从1到N的连续整数集合,能划分成两个子集合,且保证每个集合的数字和是相等的。
    #include<iostream>#include<vector>#include<cstdlib>usingnamespacestd;constintMax=10000;classDynamicClass{private:intn;//n表示{1,2,3,...n}longs......
  • #yyds干货盘点# 动态规划专题:分割等和子集
    1.简述:描述给定一个只包含正整数的数组nums,请问能否把这个数组取出若干个数使得取出的数之和和剩下的数之和相同。数据范围:  ,数组中的元素满足 输入描述:第一行输入一......
  • [C++]二进制求子集
    这几天做[leetcode1178]猜字谜的题目,用到了很多小的知识技巧点。其中一个就是二进制状态压缩以及如何根据一个二进制序列求其子集,如二进制序列110111001子集里有000000001......