Leetcode Subsets
2013-12-05 18:00
260 查看
dfs again!
记得先排序,同时还要记录当前所在的位置,递归的下一层直接从这个位置开始遍历。
class Solution {
public:
vector<vector<int> > subsets(vector<int> &S) {
ans.clear();
ans.push_back(v);
sort(S.begin(), S.end());
for(int i = 1; i <= S.size(); i++){
v.clear();
dfs(S, 0, 0, i);
}
return ans;
}
void dfs(vector<int> &S, int index, int cnt, int sum){
if(cnt == sum){
ans.push_back(v);
return ;
}
for(int i = index; i < S.size(); i++){
v.push_back(S[i]);
dfs(S, i+1, cnt+1, sum);
v.pop_back();
}
}
vector<int> v;
vector<vector<int> > ans;
};
记得先排序,同时还要记录当前所在的位置,递归的下一层直接从这个位置开始遍历。
class Solution {
public:
vector<vector<int> > subsets(vector<int> &S) {
ans.clear();
ans.push_back(v);
sort(S.begin(), S.end());
for(int i = 1; i <= S.size(); i++){
v.clear();
dfs(S, 0, 0, i);
}
return ans;
}
void dfs(vector<int> &S, int index, int cnt, int sum){
if(cnt == sum){
ans.push_back(v);
return ;
}
for(int i = index; i < S.size(); i++){
v.push_back(S[i]);
dfs(S, i+1, cnt+1, sum);
v.pop_back();
}
}
vector<int> v;
vector<vector<int> > ans;
};
相关文章推荐
- PHP程序员面试 切忌急功近利(更需要注重以后的发展)
- php 面试碰到过的问题 在此做下记录
- asp.net 面试+笔试题目第1/2页
- asp.net 面试 笔试题目[附答案]第1/3页
- 面试:(设计,架构)
- 面试时,你会问面试官哪些问题?
- asp.net面试中的四十一个经典题目
- 网络工程师面试常见问题
- 腾讯社招面试经历
- java基础面试题 - java基础(1)
- 工作流引擎面试记录及未来发展
- 3个CCIE对一个工程师的面试题
- 今天面试IBM CSDL
- 职场动态赢得面试机会的8个技巧
- 经典linux系统工程师/系统管理员面试题
- 面试 汇总
- 整理
- 面试试题
- 面试相关
- "我会写代码呀,为什么谷歌不要我?"