Leetcode::Subsets
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相关推荐
- Leetcode - Subsets I,II
Leetcode - 078. Subsets 这道题重定义了什么叫可行解: 一般而言,可行解需要满足强约束性条件集,而本题的可行解就是单一弱约束性条件(distinct integers,只需要当前 ...
- [leetcode]Subsets @ Python
原题地址:https://oj.leetcode.com/problems/subsets/ 题意:枚举所有子集. 解题思路:碰到这种问题,一律dfs. 代码: class Solution:# @p ...
- LeetCode | Subsets I,II
Given a set of distinct integers, nums, return all possible subsets. Note: The solution set must not ...
- [LeetCode]Subsets II生成组合序列
class Solution {//生成全部[不反复]的组合.生成组合仅仅要採用递归,由序列从前往后遍历就可以. 至于去重,依据分析相应的递归树可知.同一个父节点出来的两个分支不能一样(即不能与前一个 ...
- LeetCode 解题报告索引
最近在准备找工作的算法题,刷刷LeetCode,以下是我的解题报告索引,每一题几乎都有详细的说明,供各位码农参考.根据我自己做的进度持续更新中...... ...
- LeetCode:Combinations
题目链接 Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. For e ...
- taoqick 搜索自己CSDN博客
L1 L2正则化和优化器的weight_decay参数 kaiming初始化的推导 Pytorch动态计算图 Pytorch自动微分机制 PyTorch中在反向传播前为什么要手动将梯度清零? 通俗讲解 ...
- [Leetcode]@python 90. Subsets II.py
题目链接 https://leetcode.com/problems/subsets-ii/ 题目原文 Given a collection of integers that might contai ...
- 【暴力枚举】LeetCode 90. Subsets II
LeetCode 90. Subsets II solution1和2均是利用set的,3和4是不利用set的 Solution1:我的答案 迭代法 class Solution { public:v ...
最新文章
- WPF的消息机制(二)- WPF内部的5个窗口之隐藏消息窗口
- JAVA byte[] String
- 实现定时中断_EPIT 定时器,仅需做到如下几步,即可轻松配置使用
- SELINUX导致的SSH密匙无法创建和访问的问题
- 3分钟,看回归分析模型怎么做
- [Angularjs]锚点操作服务$anchorScroll
- 405 not allowed怎么解决_英语口语:“您拨叫的用户不在服务区”这类电话常用语怎么说...
- 用代码建立与数据库的连接 c#连sqlserver
- java锁包读写锁_java8读写锁如何使用
- I/O设备与主机的联系方式
- vs中c语言图形显示,VS2010/MFC编程入门之四十九(图形图像:CDC类及其屏幕绘图函数)...
- bootstrap布局设计在线工具
- 【单片机学习笔记】(25):PID初识、门电路符号、H桥驱动电路、中断服务函数使用注意事项、SIM800C打电话发短信、OLED
- ArcGIS网络分析扩展模块
- 精益生产管理中如何进行库存成本控制?
- (5.2.1)配置服务器参数——即时文件初始化(IFI)
- 学成在线网站知识分享
- The Lion and the Unicorn: Socialism and the English Genius--PartⅠ
- intell idea 快速启动设置
- 知识管理的唯一出路:与业务融合,构建情景化知识管理体系