leetcode78. 子集

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

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

cpp 复制代码
示例 1:

输入:nums = [1,2,3]
输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]

示例 2:

输入:nums = [0]
输出:[[],[0]]

先上代码:

cpp 复制代码
class Solution {
    public void dfs(List<List<Integer>> res, List<Integer>cnt, int st, int len, int[] nums) {
        if(len == cnt.size()) res.add(new ArrayList<Integer>(cnt));
        //System.out.println(len+"  "+ cnt.size());
        for(int i = st; i < nums.length; i++) {
            cnt.add(nums[i]);
            dfs(res, cnt, i+1, len+1, nums);
            cnt.remove(cnt.size() - 1);
        }
    }
    public List<List<Integer>> subsets(int[] nums) {

        List<List<Integer>>res = new ArrayList<>();
        List<Integer>cnt = new ArrayList<>();
        //for(int i = 0; i < nums.length; i++) cnt.add(nums[i]);
        dfs(res, cnt, 0, 0,nums);
        return res;
    }

首先要滤清回溯的思路,

每次做判断选或者不选,然后恢复状态

相关推荐
Navigator_Z4 小时前
LeetCode //C - 1206. Design Skiplist
c语言·算法·leetcode
码行山野赴时序归途4 小时前
三道经典数组题:从暴力到最优的算法思维
c语言·开发语言·数据结构·算法·leetcode
徐小夕4 小时前
3分钟从想法到Agent上线:我们开源了一款AI可视化工作流“IDE”
前端·算法·github
sel_96 小时前
【强化学习】Hands-on Modern RL项目实践|OPD 算法完整解析
人工智能·深度学习·算法·机器学习·语言模型
Navigator_Z6 小时前
LeetCode //C - 1209. Remove All Adjacent Duplicates in String II
c语言·算法·leetcode
ShineWinsu8 小时前
对于 C++:C++14中从变量模板、泛型 Lambda 到并发与字面量的解析
c++·算法
土司大王9 小时前
LeetCode hot100——合并两个有序链表
算法·leetcode·链表
码行山野赴时序归途9 小时前
算法效率的度量(上):时间复杂度中的对数思维
c语言·数据结构·算法
算AI9 小时前
基于LLM的无人机仿真测试:新方法竞赛夺佳绩
人工智能·深度学习·算法·机器学习·ai