Subsets
2015-07-05 22:45
337 查看
class Solution {
public:
vector<vector<int>> subsets(vector<int>& nums) {
sort(nums.begin(),nums.end());
vector<vector<int>>result;
vector<int>path;
dfs(nums,path,0,result);
return result;
}
void dfs(vector<int>& nums, vector<int>&path,int step,vector<vector<int>>&result){
if(step==nums.size())
{
result.push_back(path);
return;
}
dfs(nums,path,step+1,result); //每次有插入和空两种情况;
path.push_back(nums[step]);
dfs(nums,path,step+1,result);
path.pop_back();
}
};
第二种方法类似于排列组合
class Solution {
public:
vector<vector<int> > subsets(vector<int> &S)
{
vector<vector<int> > result;
vector<int> subset;
sort(S.begin(),S.end());
result.push_back(subset);
DFS(S,0,subset,result);
return result;
}
void DFS(vector<int> S , int start , vector<int> &subset , vector<vector<int> > &result)
{
if(start == S.size())
{
return;
}
for(int i = start ; i < S.size() ; i++)
{
subset.push_back(S[i]);
result.push_back(subset);
DFS(S,i+1,subset,result);
subset.pop_back( );
}
}
};
public:
vector<vector<int>> subsets(vector<int>& nums) {
sort(nums.begin(),nums.end());
vector<vector<int>>result;
vector<int>path;
dfs(nums,path,0,result);
return result;
}
void dfs(vector<int>& nums, vector<int>&path,int step,vector<vector<int>>&result){
if(step==nums.size())
{
result.push_back(path);
return;
}
dfs(nums,path,step+1,result); //每次有插入和空两种情况;
path.push_back(nums[step]);
dfs(nums,path,step+1,result);
path.pop_back();
}
};
第二种方法类似于排列组合
class Solution {
public:
vector<vector<int> > subsets(vector<int> &S)
{
vector<vector<int> > result;
vector<int> subset;
sort(S.begin(),S.end());
result.push_back(subset);
DFS(S,0,subset,result);
return result;
}
void DFS(vector<int> S , int start , vector<int> &subset , vector<vector<int> > &result)
{
if(start == S.size())
{
return;
}
for(int i = start ; i < S.size() ; i++)
{
subset.push_back(S[i]);
result.push_back(subset);
DFS(S,i+1,subset,result);
subset.pop_back( );
}
}
};
相关文章推荐
- AngularJS自定义表单验证
- 15-07-03 for ()语句-打印三角形
- 1032. 挖掘机技术哪家强(20)
- 常量指针与指针常量的区别
- 开放《图像处理与搜索》专栏的代码
- 黑马程序员——08_Arrays.asList泛型与打印时注
- Linux安装TTF/OTF字体
- nexus5 root教程
- Lightoj 1090 - Trailing Zeroes (II)
- 黑马程序员——07_Collections.reverseOrder()传入比较器时需注意
- Java环境变量classpath、path、JAVA_HOME 配置
- mina:ProtocolCodecFilter
- 题目1191:矩阵最大值
- typedef和define具体的详细区别
- [Objective-C] 011_数据持久化_NSKeyedArchiver
- CF 551DGukiZ and Binary Operations 矩阵/位运算
- man ifconfig时提示:-bash: man: command not found
- Qt、C++小票打印----端口(com)、并口(lpt)----并介绍了qt中qwebview的使用及js通信
- 算法-符号表的实现(顺序查找和二分查找)
- CSS:谈谈栅格布局