Subsets
2016-05-19 14:39
218 查看
Given a set of distinct integers, nums, 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 nums = [1,2,3], a solution is:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
思路:
(1)首先放入[] 到结果的vector<vector<int>>res的数组中,这个时候res的size为1
(2)将res中的集合中的vector<int>元素取出来,向其中添加nums数组中的元素而后再将结果添加到res中,这个时候res的size为2,这其中就有两个元素了,一个是[],一个是[nums[0]]
(3)以此类推即可
class Solution {
public:
vector<vector<int>> subsets(vector<int>& nums) {
vector<vector<int>>res;
vector<int>slo;
if(nums.empty())
return res;
sort(nums.begin(),nums.end());
res.push_back(slo);
for(int i=0;i<nums.size();i++)
{
int n=res.size();
for(int j=0;j<n;j++)
{
slo=res[j];
slo.push_back(nums[i]);
res.push_back(slo);
}
}
return res;
}
};
Note:
Elements in a subset must be in non-descending order.
The solution set must not contain duplicate subsets.
For example,
If nums = [1,2,3], a solution is:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
思路:
(1)首先放入[] 到结果的vector<vector<int>>res的数组中,这个时候res的size为1
(2)将res中的集合中的vector<int>元素取出来,向其中添加nums数组中的元素而后再将结果添加到res中,这个时候res的size为2,这其中就有两个元素了,一个是[],一个是[nums[0]]
(3)以此类推即可
class Solution {
public:
vector<vector<int>> subsets(vector<int>& nums) {
vector<vector<int>>res;
vector<int>slo;
if(nums.empty())
return res;
sort(nums.begin(),nums.end());
res.push_back(slo);
for(int i=0;i<nums.size();i++)
{
int n=res.size();
for(int j=0;j<n;j++)
{
slo=res[j];
slo.push_back(nums[i]);
res.push_back(slo);
}
}
return res;
}
};
相关文章推荐
- iOS开发服务器返回(null) 与<null>的处理
- javascript深入理解js闭包
- 代码命名规范
- Shape属性:
- android上的JAVA8:使用retrolambda
- MySQL数据库的修复
- iOS addChildViewController 详解
- RTX腾讯通对话框字体 错乱修复 ,如发出去 是躺着的字
- 剑指Offer——连续序列的和值
- android读取sim卡信息
- 阀值与阈值的差别
- libevent 安装异常
- Struts2框架action层学习心得体会
- Java:Json与其他Java对象集合的转换
- mysql varchar 类型的等于
- 设计模式之建造者模式
- 部分和问题-dfs穷举
- 1分钟快速生成用于网页内容提取的xslt
- HDU - 4352 XHXJ's LIS (数位DP&记忆化dfs&位运算)好题
- 【Spring学习】IoC与DI