热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LeetCode题解78.子集

1.题目给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:

1. 题目

给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。

说明:解集不能包含重复的子集。
示例:

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

2. 分析

    子集树。采用DFS,利用一个单独的存储空间st存储集合中的值保留/不保留,即0/1。那么求集合的子集相当于去找所有不重复的0,1排列。


3. C++程序

class Solution {
public:vector<vector<int>> subsets(vector<int>& nums) { vector<vector<int>> res; vector<int> st;for(int i&#61;0;i0);dfs(0,res,st,nums);return res;}void dfs(int index,vector<vector<int>>& res,vector<int> st,vector<int> nums){if(index>&#61;st.size()){ vector<int> subset;for(int i&#61;0;iif(st[i]&#61;&#61;1) subset.push_back(nums[i]);}res.push_back(subset);return;}for(int i&#61;0;i<2;i&#43;&#43;){int temp &#61; st[index];st[index] &#61; i;dfs(index&#43;1,res,st,nums);st[index] &#61; temp; }}
};

推荐阅读
  • 转载请注明原文地址:http:www.cnblogs.comygj0930p6409067.html1:HammingdistanceTheHammin ... [详细]
  • Redis底层数据结构之压缩列表的介绍及实现原理
    本文介绍了Redis底层数据结构之压缩列表的概念、实现原理以及使用场景。压缩列表是Redis为了节约内存而开发的一种顺序数据结构,由特殊编码的连续内存块组成。文章详细解释了压缩列表的构成和各个属性的含义,以及如何通过指针来计算表尾节点的地址。压缩列表适用于列表键和哈希键中只包含少量小整数值和短字符串的情况。通过使用压缩列表,可以有效减少内存占用,提升Redis的性能。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • 文章目录题目:二叉搜索树中的两个节点被错误地交换。基本思想1:中序遍历题目:二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下 ... [详细]
  • 基于halcon的特征匹配实例
    特征匹配原图模板识别图代码结果原图模板识别图代码*这个例子在图片数据库中查找文章的页面。*第一步是训练不同的页面并创建模型。*然后搜索未知图像并检测出正确的文章页面。*请注意& ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 集合set集合是可变的容器集合内的数据对象都是唯一的(不能重复多次的)集合是无序的存储结构,集合中的数据没有先后关系集合内的元素必须是不可 ... [详细]
  • 引子:Question:CanyoutellmewhatthedifferenceoftwoSQLstatementsatperformanceofexecution ... [详细]
  • 我正在尝试使用 ... [详细]
  • 本文整理了Java中org.apache.commons.collections4.ListUtils.unmodifiableList()方法的一些代码示例,展示了 ... [详细]
  • CF809A:Do you want a date?(数学  思维)
    A.Doyouwantadate?timelimitpertest2secondsmemorylimitpertest256megabytesinputstandardinputo ... [详细]
author-avatar
倒带灬樱花巷_317
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有