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

首先要滤清回溯的思路,

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

相关推荐
归去_来兮7 小时前
拉格朗日插值算法原理及简单示例
算法·数据分析·拉格朗日插值
千寻girling13 小时前
Python 是用来做 AI 人工智能 的 , 不适合开发 Web 网站 | 《Web框架》
人工智能·后端·算法
颜酱17 小时前
一步步实现字符串计算器:从「转整数」到「带括号与优化」
javascript·后端·算法
CoovallyAIHub1 天前
语音AI Agent编排框架!Pipecat斩获10K+ Star,60+集成开箱即用,亚秒级对话延迟接近真人反应速度!
深度学习·算法·计算机视觉
木心月转码ing2 天前
Hot100-Day14-T33搜索旋转排序数组
算法
会员源码网2 天前
内存泄漏(如未关闭流、缓存无限增长)
算法
颜酱2 天前
从0到1实现LFU缓存:思路拆解+代码落地
javascript·后端·算法
颜酱2 天前
从0到1实现LRU缓存:思路拆解+代码落地
javascript·后端·算法
CoovallyAIHub2 天前
Moonshine:比 Whisper 快 100 倍的端侧语音识别神器,Star 6.6K!
深度学习·算法·计算机视觉