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();
        }
    }
相关推荐
i220818 Faiz Ul几秒前
民谣网站|基于Springboot的民谣网站管理系统(源码+数据库+文档)
java·数据库·spring boot·后端·论文·毕设·民谣网站
z落落1 分钟前
C# 继承基础详解(代码实战+权限规则)
java·开发语言
Justice Young5 分钟前
算法分析与设计实验:贪心法求解0/1背包问题的局限性
算法
黎阳之光10 分钟前
无感定位·智管全域:黎阳之光人员无感定位管理系统,重新定义安全与效率
人工智能·物联网·算法·安全·数字孪生
摇滚侠10 分钟前
JDBC 基础到高级一套通关!基础篇 00-15
java·开发语言·数据库
小L写Java13 分钟前
第三章:Java 内存模型 (JMM) 与运行时数据区
java·jvm
m0_7447249322 分钟前
Tomcat相关
java·tomcat
小许同学记录成长24 分钟前
网格简化算法 — Edge Collapse(边塌缩)
qt·算法
凯瑟琳.奥古斯特27 分钟前
力扣1001网格照明解法
算法·leetcode·职场和发展
fengenrong30 分钟前
20260601
算法·深度优先·图论