LeetCode:78.子集

跟着carl学算法,本系列博客仅做个人记录,建议大家都去看carl本人的博客,写的真的很好的!
代码随想录
LeetCode:78.子集

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

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

示例 1:

输入:nums = 1,2,3

输出:\[,1,2,1,2,3,1,3,2,3,1,2,3]

示例 2:

输入:nums = 0

输出:\[,0]

这里面和前面几题收集结果的条件是不一样的,画个树形图就能发现,子集是树形图中的每个节点,组合问题收集的是叶子节点,而子集问题收集的是所有节点

java 复制代码
	public List<List<Integer>> subsets(int[] nums) {
        List<List<Integer>> res = new ArrayList<>();
        backtracking(nums, 0, new ArrayList<>(), res);
        return res;
    }

    private void backtracking(int[] nums, int index, List<Integer> path, List<List<Integer>> res) {
        // 通过画树形图可以发现,这里面每个节点的值都是需要收集的,即没有手机结果的条件!
        res.add(new ArrayList(path));
        for (int i = index; i < nums.length; i++) {
            path.add(nums[i]);
            backtracking(nums, i + 1, path, res);
            path.removeLast();
        }
    }
相关推荐
.Cnn1 分钟前
Maven进阶知识点
java·maven
布朗克1685 分钟前
11 面向对象思想入门
java·对象
拽着尾巴的鱼儿7 分钟前
lombok.RequiredArgsConstructor bean 注入
java·lombok
铁链鞭策大师9 分钟前
JavaEE之多线程
java·开发语言·java-ee
摇滚侠12 分钟前
Maven 入门+高深 jar 包冲突 167-171
java·maven·jar
我是唐青枫13 分钟前
Java Optional 实战指南:优雅处理空值与链式转换
java·开发语言
摇滚侠13 分钟前
SpringBoot 升级,依赖冲突如何解决
java·spring boot·spring
jack@london17 分钟前
eclipse启动tomcat6时报错OutOfMemoryError: PermGen space
java·ide·eclipse
小江的记录本23 分钟前
【JVM虚拟机】类加载机制:类加载器、双亲委派模型、好处、破坏双亲委派的场景(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·后端·python·spring·面试
李少兄24 分钟前
Spring 对象创建范式:依赖注入与直接实例化的边界抉择
java·后端·spring