Subsets 子集系列问题 leetcode
Coding 问题中有时会出现这样的问题:给定一个集合,求出这个集合所有的子集(所谓子集,就是包含原集合中的一部分元素的集合)。
或者求出满足一定要求的子集,比如子集中元素总和为定值,子集元素个数为定值等等。
我把它们归类为子集系列问题。
思路分析:
思路一
可以用递推的思想,观察S=[], S =[1], S = [1, 2] 时解的变化。

可以发现S=[1, 2] 的解就是 把S = [1]的所有解末尾添上2,然后再并上S = [1]里面的原有解。因此可以定义vector<vector<int> > 作为返回结果res, 开始时res里什么都没有,第一步放入一个空的vecotr<int>,然后这样迭代n次,每次更新res 内容,最后返回res。
 class Solution {
 public:
     vector<vector<int>> subsets(vector<int>& nums)
     {
         vector<vector<int>> res;
         vector<int> temp;
         res.push_back(temp);
         if(nums.empty())
             return res;
         sort(nums.begin(),nums.end());
         for(vector<int>::iterator i=nums.begin();i!=nums.end();i++)
         {
            int size=res.size();
            for(int j=;j<size;j++)//这里注意因为res一直在增长,所以遍历res的时候不能用vector<int>::iterator,否则可能因为vector重新allocate内存而地址失效,因此直接使用数组下标。
            {
                 vector<int> tem;
                 for(auto begin=res[j].begin();begin!=res[j].end();begin++)//仅仅是为了完成在末尾添加新元素(复制+末尾插入)
                     tem.push_back(*begin);
                 tem.push_back(*i);
                 res.push_back(tem);
            }
         }
         return res;
     }
 };
Subsets 子集系列问题 leetcode的更多相关文章
- 子集系列(一) 传统subset 问题,例 [LeetCode] Subset, Subset II, Bloomberg 的一道面试题
		
引言 Coding 问题中有时会出现这样的问题:给定一个集合,求出这个集合所有的子集(所谓子集,就是包含原集合中的一部分元素的集合). 或者求出满足一定要求的子集,比如子集中元素总和为定值,子集元素个 ...
 - 子集系列(二) 满足特定要求的子集,例 [LeetCode] Combination, Combination Sum I, II
		
引言 既上一篇 子集系列(一) 后,这里我们接着讨论带有附加条件的子集求解方法. 这类题目也是求子集,只不过不是返回所有的自己,而往往是要求返回满足一定要求的子集. 解这种类型的题目,其思路可以在上一 ...
 - leetCode 78.Subsets (子集) 解题思路和方法
		
Given a set of distinct integers, nums, return all possible subsets. Note: Elements in a subset must ...
 - 078 Subsets 子集
		
给定一组不同的整数 nums,返回所有可能的子集(幂集).注意事项:该解决方案集不能包含重复的子集.例如,如果 nums = [1,2,3],结果为以下答案:[ [3], [1], [2], ...
 - lintcode 中等题:subSets 子集
		
题目 子集 给定一个含不同整数的集合,返回其所有的子集 样例 如果 S = [1,2,3],有如下的解: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], ...
 - subsets(子集)
		
Given a set of distinct integers, nums, return all possible subsets (the power set). Note: The solut ...
 - “全排列”问题系列(一)[LeetCode] - 用交换元素法生成全排列及其应用,例题: Permutations I 和 II, N-Queens I 和 II,数独问题
		
转:http://www.cnblogs.com/felixfang/p/3705754.html 一.开篇 Permutation,排列问题.这篇博文以几道LeetCode的题目和引用剑指offer ...
 - Leetcode78. Subsets子集
		
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2 ...
 - [LeetCode] Subsets II 子集合之二
		
Given a collection of integers that might contain duplicates, S, return all possible subsets. Note: ...
 
随机推荐
- 创建线程方式-NSThread
			
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
 - HTML 滚动标签<marquee>
			
主要参数: behavior 移动方式 scroll 循环移动 slide 只移动一个回合 alternate 来回移动 direction 移动方向 left r ...
 - 使用Freemarker宏进行可扩展式模块化编程
			
作者:Chu Lung 原文链接:http://blog.chulung.com/article/13 本文由MetaCLBlog于2016-07-08 14:42:10自动同步至cnblogs 一. ...
 - Linux 相关基础笔记
			
html,body { } .CodeMirror { height: auto } .CodeMirror-scroll { } .CodeMirror-lines { padding: 4px 0 ...
 - Hadoop HDFS编程 API入门系列之HDFS_HA(五)
			
不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs3; import java.io.FileInputStream;import ...
 - MySQL_关于用嵌套表计算的可以不用 20161205
			
计算求和类的指标,其实用不到嵌套表,比如计算各城市产品分类的订单额. 如果要计算不重复的指标 比如一个用户一天下了多个订单 用这样的表计算一天有多少用户下单 这个用户肯定是去重的 下多个订单也应该视为 ...
 - C++中 容易忽视的const 修饰符
			
C++可以用const定义常量,也可以用#define定义常量,但是前者比后者有更多的有点: (1)const常量有数据类型,而宏常量没有数据类型.编译器可以对const进行类型安全检查,而后者只进行 ...
 - [转]Python学习资料和教程pdf
			
开发工具: Python语言集成开发环境 Wingware WingIDE Professional v3.2.12 Python语言集成开发环境 Wingware WingIDE Professio ...
 - C# XML读写实例
			
一.使用System.Xml 实例:完成如下格式配置文件的读写操作: <?xml version="1.0" encoding="UTF-8"?> ...
 - reason: '-[__NSCFNumber rangeOfCharacterFromSet:]: unrecognized selector sent to instance
			
类型的不匹配,把类型转化对应的数据类型,例: model.price 是模型数据,其值为1550: cell.label.text = [NSString stringWithFormat:@&quo ...