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;
    }

首先要滤清回溯的思路,

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

相关推荐
Re.不晚2 小时前
挑战做100道力扣算法- DAY1
算法·leetcode·职场和发展
蓝悦无人机3 小时前
《Planning algorithms》读书笔记——第1章 引言
算法·读书笔记·规划算法·lavalle
Sagittarius_A*3 小时前
分组密码基础(二):Feistel 结构与 DES 的设计思想
算法·信息安全·密码学·des·数论
青山木3 小时前
Hot 100 --- 搜索插入位置
java·数据结构·算法·leetcode
alexwang2114 小时前
HDU 4348 详细题解
c++·算法·题解·hdu·主席树·可持久化数据结构·可持久化线段树
可编程芯片开发5 小时前
基于分段变步长搜索RMDCFT算法的天基雷达空间机动目标检测方法MATLAB仿真,对比RMDCFT算法
算法
2501_946736165 小时前
在线考试平台如何选型?从功能、优势与应用场景角度详解
大数据·人工智能·算法
天辛大师5 小时前
天心大师:不确定中锚定自我,AI生活的哲学命题
人工智能·算法·决策树·机器学习·生活·启发式算法
皓月斯语5 小时前
B2132 素数对
c++·算法·题解
星轨初途6 小时前
LeetCode 热题 100——day2 字母异位词分组
c++·算法·leetcode