leetcode 78. Subsets
2016-03-27 14:38
274 查看
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 =
is:
class Solution {
void choose_one(vector<pair<vector<int>, vector<int>>>&candi)
{
vector<pair<vector<int>, vector<int>>>newcandi;
for (int i = 0; i < candi.size(); i++)
{
for (int j = 0; j < candi[i].second.size(); j++)
{
vector<int>bb = candi[i].first;
bb.push_back(candi[i].second[j]);
vector<int>cc = candi[i].second;
cc.erase(cc.begin(), cc.begin() + j + 1);
newcandi.push_back(pair<vector<int>, vector<int>>(bb, cc));
}
}
candi = newcandi;
}
public:
vector<vector<int>> subsets(vector<int>& nums) {
vector<vector<int>>re;
vector<int>aa,a;
re.push_back(aa);
sort(nums.begin(), nums.end());
vector<pair<vector<int>, vector<int>>>candi;
candi.push_back(pair<vector<int>, vector<int>>(a, nums));
int k = 0;
while (k < nums.size())
{
choose_one(candi);
for (int i = 0; i < candi.size(); i++)
re.push_back(candi[i].first);
k++;
}
return re;
}
};
accepted
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], [] ]
class Solution {
void choose_one(vector<pair<vector<int>, vector<int>>>&candi)
{
vector<pair<vector<int>, vector<int>>>newcandi;
for (int i = 0; i < candi.size(); i++)
{
for (int j = 0; j < candi[i].second.size(); j++)
{
vector<int>bb = candi[i].first;
bb.push_back(candi[i].second[j]);
vector<int>cc = candi[i].second;
cc.erase(cc.begin(), cc.begin() + j + 1);
newcandi.push_back(pair<vector<int>, vector<int>>(bb, cc));
}
}
candi = newcandi;
}
public:
vector<vector<int>> subsets(vector<int>& nums) {
vector<vector<int>>re;
vector<int>aa,a;
re.push_back(aa);
sort(nums.begin(), nums.end());
vector<pair<vector<int>, vector<int>>>candi;
candi.push_back(pair<vector<int>, vector<int>>(a, nums));
int k = 0;
while (k < nums.size())
{
choose_one(candi);
for (int i = 0; i < candi.size(); i++)
re.push_back(candi[i].first);
k++;
}
return re;
}
};
accepted
相关文章推荐
- [BZOJ2002][HNOI2010]弹飞绵羊(LCT)
- Tomcat 内存溢出对应解决方式
- 敏捷开发方法综述
- JavaScript之基础-8 JavaScript 数组(创建、访问、常用方法、二维数组)
- 第五周项目一 三角形类雏形(1)
- HTML DOM 属性
- Light OJ 1122 Digit Count
- C++学习笔记——第11章 运算符法重载
- 矩阵的一些知识
- python去掉字符串中空格的方法
- 点滴编程
- Nginx
- The imported target "Qt5::Core" references the file
- 时间与日期处理
- 179.Largest Number
- 指针(2)
- 推广策略之QQ群
- 20135323符运锦----第十八章知识点总结
- React(0.13) 组件的组合使用
- 创建Graphics对象的方法及使用