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();
        }
    }
相关推荐
xiangyun6110 分钟前
【408数据结构 06】双链表、循环链表、静态链表
c语言·开发语言·数据结构·c++·算法
cfm_29141 小时前
单例模式详解
java
我叫张土豆1 小时前
本体论、DDD、SDD、TDD:AI 编程时代的四层认知栈
java·人工智能
白远山2 小时前
家政服务家政社区派单实战:调度系统架构设计与实现指南
java·开发语言·小程序·架构·需求分析
海南java第二人2 小时前
从诞生到回收:JVM对象生命周期与垃圾回收全链路解析
java
302wanger2 小时前
推荐下我的两个AI信息源
算法
索尔~古德曼2 小时前
CF——错题的集合
算法
SL_staff2 小时前
JVS-Logic:从页面配置工具到企业级业务逻辑中枢的技术演进
java·算法·全栈
DevRay2 小时前
Java 21虚拟线程深度实战:告别线程池焦虑,百万并发吞吐量直接翻倍(原理+代码+避坑)
java·开发语言
陌シ未央ゞ2 小时前
基于BM25算法和RRF实现的混合索引(java版)
人工智能·spring boot·后端·算法