Given a set of distinct integers, S, return all possible subsets.

分析:题目就是给一个整数集合,给出所以的子集。 基本思想是递归或者说是迭代的方法。用前面得到的集合来构造

后面的。但是怎样高效、方便的构造集合是关键点。比如,开始想到的是先生成集合中0个元素、1个元素。。。逐步增多

但这样很难实现。实际高效的做法是用i个元素生成所有子集,然后往里面添加第(i+1)个元素,将得到的元素集合加到前面结果

中,就可以得到最终的结果了。

 1 class Solution {
 2 public:
 3     vector<vector<int> > subsets(vector<int> &S) {
 4         vector<vector<int> > sets;
 5         vector<int> subs;
 6         sort(S.begin(),S.end());
 7         sets.push_back(subs);
 8         for(int i=0;i<S.size();i++)
 9         {
10             int c_size = sets.size();
11             for(int j=0;j<c_size;j++)
12             {
13                 subs = sets[j];
14                 subs.push_back(S[i]);
15                 sets.push_back(subs);
16             }
17         }
18
19         return sets;
20     }
21 };

代码非常的简洁,但是注意第10行,是每次加之前,需要记录集合中已有的子集个数,否则后面size变化,会导致死循环!

转载于:https://www.cnblogs.com/soyscut/p/3770754.html

Leetcode::Subsets相关推荐

  1. Leetcode - Subsets I,II

    Leetcode - 078. Subsets 这道题重定义了什么叫可行解: 一般而言,可行解需要满足强约束性条件集,而本题的可行解就是单一弱约束性条件(distinct integers,只需要当前 ...

  2. [leetcode]Subsets @ Python

    原题地址:https://oj.leetcode.com/problems/subsets/ 题意:枚举所有子集. 解题思路:碰到这种问题,一律dfs. 代码: class Solution:# @p ...

  3. LeetCode | Subsets I,II

    Given a set of distinct integers, nums, return all possible subsets. Note: The solution set must not ...

  4. [LeetCode]Subsets II生成组合序列

    class Solution {//生成全部[不反复]的组合.生成组合仅仅要採用递归,由序列从前往后遍历就可以. 至于去重,依据分析相应的递归树可知.同一个父节点出来的两个分支不能一样(即不能与前一个 ...

  5. LeetCode 解题报告索引

    最近在准备找工作的算法题,刷刷LeetCode,以下是我的解题报告索引,每一题几乎都有详细的说明,供各位码农参考.根据我自己做的进度持续更新中......                        ...

  6. LeetCode:Combinations

    题目链接 Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. For e ...

  7. taoqick 搜索自己CSDN博客

    L1 L2正则化和优化器的weight_decay参数 kaiming初始化的推导 Pytorch动态计算图 Pytorch自动微分机制 PyTorch中在反向传播前为什么要手动将梯度清零? 通俗讲解 ...

  8. [Leetcode]@python 90. Subsets II.py

    题目链接 https://leetcode.com/problems/subsets-ii/ 题目原文 Given a collection of integers that might contai ...

  9. 【暴力枚举】LeetCode 90. Subsets II

    LeetCode 90. Subsets II solution1和2均是利用set的,3和4是不利用set的 Solution1:我的答案 迭代法 class Solution { public:v ...

最新文章

  1. WPF的消息机制(二)- WPF内部的5个窗口之隐藏消息窗口
  2. JAVA byte[] String
  3. 实现定时中断_EPIT 定时器,仅需做到如下几步,即可轻松配置使用
  4. SELINUX导致的SSH密匙无法创建和访问的问题
  5. 3分钟,看回归分析模型怎么做
  6. [Angularjs]锚点操作服务$anchorScroll
  7. 405 not allowed怎么解决_英语口语:“您拨叫的用户不在服务区”这类电话常用语怎么说...
  8. 用代码建立与数据库的连接 c#连sqlserver
  9. java锁包读写锁_java8读写锁如何使用
  10. I/O设备与主机的联系方式
  11. vs中c语言图形显示,VS2010/MFC编程入门之四十九(图形图像:CDC类及其屏幕绘图函数)...
  12. bootstrap布局设计在线工具
  13. 【单片机学习笔记】(25):PID初识、门电路符号、H桥驱动电路、中断服务函数使用注意事项、SIM800C打电话发短信、OLED
  14. ArcGIS网络分析扩展模块
  15. 精益生产管理中如何进行库存成本控制?
  16. (5.2.1)配置服务器参数——即时文件初始化(IFI)
  17. 学成在线网站知识分享
  18. The Lion and the Unicorn: Socialism and the English Genius--PartⅠ
  19. intell idea 快速启动设置
  20. 知识管理的唯一出路:与业务融合,构建情景化知识管理体系

热门文章

  1. 车智汇模式系统技术开发数据
  2. 分布式搜索 Elasticsearch —— 删除索引
  3. 【转】彻底搞清计算结构体大小和数据对齐原则
  4. C语言错误: HEAP CORRUPTION DETECTED
  5. iOS学习之iOS沙盒(sandbox)机制和文件操作之NSFileManager
  6. 解决思科认证学员与高校网络及信息安全专业实验限制的解决方案
  7. iphone3G恢复到3.1.2遇到的问题
  8. Java学习总结 16个亮点
  9. windwos 批处理重定向, 讲的策彻底
  10. 三、Eclipse快捷键