LeetCode Hot100 78.子集

题目

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

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

方法:灵神 选 or 不选

java 复制代码
class Solution {
    private final List<List<Integer>> ans = new ArrayList<>();
    private final List<Integer> path = new ArrayList<>();
    private int[] nums;

    public List<List<Integer>> subsets(int[] nums) {
        this.nums = nums;
        dfs(0);
        return ans; 
    }
    // 注意区分 ans.add 和 path.add
    private void dfs(int i) {
        if (i == nums.length) {
            ans.add(new ArrayList<>(path));
            return;
        }
        dfs(i + 1);
        path.add(nums[i]);
        dfs(i + 1);
        path.remove(path.size() - 1);  // 恢复现场
    }
}
相关推荐
小森77675 分钟前
(七)深度学习---神经网络原理与实现
人工智能·深度学习·神经网络·算法
chenyuhao202411 分钟前
链表的面试题4之合并有序链表
数据结构·链表·面试·c#
迷茫不知归路23 分钟前
操作系统实验习题解析 上篇
c++·算法·操作系统·实验课设
愚润求学43 分钟前
【递归、搜索与回溯】专题一:递归(二)
c++·笔记·算法·leetcode
水水沝淼㵘1 小时前
嵌入式开发学习日志(数据结构--顺序结构单链表)Day19
linux·服务器·c语言·数据结构·学习·算法·排序算法
June`2 小时前
专题四:综合练习( 找出所有子集的异或总和再求和)
c++·算法·深度优先·剪枝
Magnum Lehar2 小时前
3d游戏引擎的Utilities模块实现下
c++·算法·游戏引擎
莹莹学编程—成长记2 小时前
list基础用法
数据结构·list
清幽竹客2 小时前
redis数据结构-09 (ZADD、ZRANGE、ZRANK)
数据结构·数据库·redis
JANYI20182 小时前
C语言易混淆知识点详解
java·c语言·算法