首页 > 其他分享 >刷刷刷 Day 28 | 78. 子集

刷刷刷 Day 28 | 78. 子集

时间:2023-01-29 23:13:43浏览次数:52  
标签:nums int 28 private startIndex 子集 path Day 78

78. 子集

LeetCode题目要求

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

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

示例

输入:nums = [1,2,3]
输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
解题思路

子集需要的是所有可能性,所以要取所有节点

上代码

class Solution {

    private List<List<Integer>> res = new ArrayList<>();
    private Deque<Integer> path = new LinkedList<>();

    public List<List<Integer>> subsets(int[] nums) {
        backtracking(nums, 0);
        return res;
    }

    private void backtracking(int[] nums, int startIndex) {
        res.add(new ArrayList<>(path));
        // 终止条件
        if (startIndex >= nums.length) {
            return;
        }

        // 单层循环
        for (int i = startIndex; i < nums.length; i++) {
            path.add(nums[i]);
            backtracking(nums, i + 1);
            path.removeLast();
        }
    }
}

附:学习资料链接

标签:nums,int,28,private,startIndex,子集,path,Day,78
From: https://www.cnblogs.com/blacksonny/p/17074052.html

相关文章

  • 刷刷刷 Day 28 | 90. 子集 II
    90.子集IILeetCode题目要求给你一个整数数组nums,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。返回的解集中,子集可以按任意......
  • 【YBT2023寒假Day2 B】树上距离(分块)(LCA)(DP)
    树上距离题目链接:YBT2023寒假Day2B题目大意一棵树,边有边权,每次给出l,r,x,求x号点走到编号在l~r之间最近的点的距离。思路这题还有其它方法,比如线段树分治+线段树......
  • 【YBT2023寒假Day2 A】变量取值(网络流)
    变量取值题目链接:YBT2023寒假Day2A题目大意有n个变量你可以选择取W还是-W,有一些限制形如某个变量要小于或者小于等于或者等于某个变量。然后还有一些式子,选了三......
  • 【新生寒训】day 24 并查集 ST表与RMQ
    【新生寒训】day24并查集ST表与RMQ记得看看这个( ̄▽ ̄)"一些方法论:https://www.cnblogs.com/CTing/p/17067404.html今日小题https://atcoder.jp/contests/abc132/tasks/......
  • golang-day4函数
    斐波那契数列三种实现方式1、循环实现funcfib1(nint)int{ //完整逻辑 switch{ casen<0: panic("nisnegative") casen==0: return0 casen==1......
  • 刷刷刷 Day 28 | 93. 复原 IP 地址
    93.复原IP地址LeetCode题目要求有效IP地址正好由四个整数(每个整数位于0到255之间组成,且不能含有前导0),整数之间用'.'分隔。例如:"0.1.2.201"和"192.168.1.......
  • 算法刷题 Day 25 | 216.组合总和III 17.电话号码的字母组合
    今日内容:组合总和III电话号码的字母组合详细布置216.组合总和III如果把组合问题理解了,本题就容易一些了。题目链接/文章讲解:https://programmercarl.com/......
  • 算法刷题 Day 24 | 回溯的理论基础 & 77. 组合
    今日内容:理论基础77.组合详细布置理论基础其实在讲解二叉树的时候,就给大家介绍过回溯,这次正式开启回溯算法,大家可以先看视频,对回溯算法有一个整体的了解......
  • Linux学习-DAY5
    一、文件目录管理命令1.touch命令touch命令用于创建空白文件或设置文件的时间,语法格式为“touch[参数] 文件名称”。2.mkdir命令mkdir命令用于创建空白的目录,英文全称为“......
  • (AtCoder Beginner Contest 287)(D 字符串前后缀合并匹配)(E Trie求最长公共前缀(LCP)
    D-MatchorNot(字符串前后缀合并匹配)题目大意:给定两个字符串S和T,对于每个x=0,1,2...|T|求S的子串(前x个字符和后|T|-x个字符在不改变顺序的情况下组成)是否与T相......