【LeetCode】Subsets & Subsets II
2014-04-21 19:19
323 查看
题目描述
Subsets
Given a set of distinct integers, S, return all possible subsets.
Note:
Elements in a subset must be in non-descending order.
The solution set must not contain duplicate subsets.
For example,
If S =
[1,2,3], a solution is:
[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
Subsets II
Given a collection of integers that might contain duplicates, S, return all possible subsets.
Note:
Elements in a subset must be in non-descending order.
The solution set must not contain duplicate subsets.
For example,
If S =
[1,2,2], a solution is:
[ [2], [1], [1,2,2], [2,2], [1,2], [] ]
题目分析
总结
代码示例
class Solution { public: vector<vector<int> > subsets(vector<int> &S) { vector<vector<int> > ret; vector<int> tmp; sort(S.begin(),S.end()); subsetsCore(ret,0,S,tmp); return ret; } void subsetsCore(vector<vector<int> > &ret,int index,vector<int> &S,vector<int> &tmp) { if(index == S.size()) { ret.push_back(tmp); return; } for(int i = index;i<S.size();i++) { tmp.push_back(S[i]); subsetsCore(ret,i+1,S,tmp); tmp.pop_back(); } ret.push_back(tmp); } };
class Solution { public: vector<vector<int> > subsetsWithDup(vector<int> &S) { vector<vector<int> > ret; vector<int> tmp; sort(S.begin(),S.end()); subsetsWithDupCore(ret,0,S,tmp); return ret; } void subsetsWithDupCore(vector<vector<int> > &ret,int index,vector<int> &S,vector<int> &tmp) { if(index == S.size()) { if(find(ret.begin(),ret.end(),tmp) == ret.end()) ret.push_back(tmp); return; } subsetsWithDupCore(ret,index+1,S,tmp); tmp.push_back(S[index]); subsetsWithDupCore(ret,index+1,S,tmp); tmp.pop_back(); } };
推荐学习C++的资料
C++标准函数库http://download.csdn.net/detail/chinasnowwolf/7108919
在线C++API查询
http://www.cplusplus.com/
相关文章推荐
- LeetCode: Subsets I & II
- 【leetcode】Subsets 1&2
- Leetcode 78. Subsets & 90. Subsets II
- <LeetCode OJ> 78. Subsets
- leetcode 491. Increasing Subsequences & lc 78. Subsets
- leetcode题解-78. Subsets && 90. Subsets II
- leetcode解题之 77. Combinations&78. Subsets&90. Subsets II java 版(求所有子集)
- [Leetcode]Subsets I&II
- Leetcode 78&90. Subsets I & II 【排列与组合的生成总结】
- [leetcode 78 & 90, Medium] Subsets I and II
- 【leetcode】Subsets I & II
- [LeetCode] Subsets(!!!!!回溯&&迭代&&位操作)(to be updated)
- Leetcode | Subsets I & II
- [Leetcode] #78#90 Subsets I & II
- #LeetCode#SubSets & SubSetsII
- [LeetCode] Subsets I (78) & II (90) 解题思路,即全组合算法
- leetcode -- Subsets I &II-- 重点,求0,1序列
- LeetCode - Subsets I && II
- LeetCode Subsets && Subsets II
- LeetCode Subsets && Subsets II