当前位置: 首页 > article >正文

leetcode 热题100(78. 子集)dfs回溯 c++

链接:78. 子集 - 力扣(LeetCode)

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

子集

(幂集)。

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

示例 1:

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

示例 2:

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

提示:

  • 1 <= nums.length <= 10
  • -10 <= nums[i] <= 10
  • nums 中的所有元素 互不相同

思路

这题根全排列那题很像,但是这里是只添加子集,就是不一定元素为数组装了n个才要添加,只要是满足顺序是从左往右的子集即可,那么我们此时定义一个 cur 变量来表示我们当前遍历到哪个数组,每个考虑两种情况 1.添加这个元素 2.不添加这个元素,那么我们肯定可以考虑所有的情况了

代码

class Solution {
public:
    int n;
    vector<vector<int>> res;
    bool st[10];
    vector<vector<int>> subsets(vector<int>& nums) {
        n = nums.size();
        vector<int> tmp;
        dfs(0,tmp,nums);
        return res;
    }

    void dfs(int cur,vector<int> tmp,vector<int>& nums){
        if(cur==n){
            res.push_back(tmp);
            return;
        }
        tmp.push_back(nums[cur]);
        dfs(cur+1,tmp,nums);
        tmp.pop_back();
        dfs(cur+1,tmp,nums);
    }
};


http://www.kler.cn/a/459906.html

相关文章:

  • Vue2: table加载树形数据的踩坑记录
  • 【大模型】wiki中文语料的word2vec模型构建
  • 免登录游客卡密发放系统PHP网站源码
  • 《HarmonyOS第一课》焕新升级,赋能开发者快速掌握鸿蒙应用开发
  • 【PCIe 总线及设备入门学习专栏 4.5 -- PCIe Message and PCIe MSI】
  • html 音频和视频组件
  • #渗透测试#红蓝攻防#红队打点web服务突破口总结02
  • HTML——23. 锚点和空链接二
  • 单片机理论基础
  • InstructGPT:基于人类反馈训练语言模型遵从指令的能力
  • Hadoop HA安装配置(容器环境),大数据职业技能竞赛模块A平台搭建,jdk+zookeeper+hadoop HA
  • 牛津Meta最新!PartGen:基于多视图扩散模型的多模态部件级3D生成和重建!
  • 网络安全行业研究报告
  • XDOJ 767 哈弗曼树
  • VBA批量插入图片到PPT,一页一图
  • 【uniapp】APP内嵌webview消息传递
  • 计算机网络 (13)信道复用技术
  • SmartAIChain荣获重要认可
  • MATLAB符号计算-符号表达式基础运算操作
  • CAD学习 day11
  • 【数据结构】线性数据结构——链表
  • 深入了解 Linux tree 命令及其常用选项:Linux如何显示目录结构和文件大小
  • 【分布式文件存储系统Minio】2024.12保姆级教程
  • CentOS修改docker镜像存储位置并进行数据迁移
  • Java-list均分
  • 机器学习-高斯混合模型