返回集合的所有子集
集合 所有 返回 子集
2023-09-14 08:57:33 时间
leetcode上的一道题,求[1,2,3]的所有子集,相当于求1和[2,3]所有子集的集合,因此先求[2,3]的子集,进而先
求[3]的子集,因此可以用递归来做。在这个过程中,需要保存路径。
typedef vector<int> vi;
typedef vector<vector<int>> vvi;
vvi get_subsets1(int a[],int idx,int n)
{
vvi subsets;
if(idx==n)
{ //返回空集
vi subset;
subsets.push_back(subset);
}
else
{
vvi rsubsets=get_subsets1(a,idx+1,n);//返回某个集合
//将该元素与返回集合的各元素合并,得到各个集合
int v=a[idx];
for(int i=0;i<rsubsets.size();i++)
{
vi subset=rsubsets[i];
subsets.push_back(subset);
subset.push_back(v);
subsets.push_back(subset);
}
}
return subsets;
}
void print_subsets(vvi sub)
{
for(int i=0;i<sub.size();i++)
{
vi subset=sub[i];
for(int j=0;j<subset.size();j++)
{
cout<<subset[j]<<"";
}
cout<<endl;
}
}
int main(){
int a[] = {
1, 2, 3, 4
};
vvi sub1 = get_subsets1(a, 0, 4);
print_subsets(sub1);
system("pause");
return 0;
}
相关文章
- MySQL(4) 数据库增删改查SQL语句(整理集合大全)
- Java基础入门笔记06——String类和StringBuffer类,Java中的三大集合,Set集合,List集合,Map集合,Collection类
- 网页跳转方法集合
- Set集合
- 【Groovy】集合遍历 ( 调用集合的 every 方法判定集合中的所有元素是否符合闭包规则 | =~ 运算符等价于 contains 函数 | 代码示例 )
- Python set集合详解
- Redis有序集合类型的操作_动力节点Java学院整理
- mysql复习集合详解数据库
- Java Map.values()方法:获取Map集合中的所有键值对象
- Java Set.toArray()方法:用Set集合中的所有对象创建一个数组
- Spring deleteAll方法:删除指定集合中的所有实体对象
- 一切均在MongoDB:超越视野的全面集合(mongodb 所有集合)
- 从Oracle集合中获取值的方法(oracle从集合中取值)
- Redis中集合妙用快速取得有价值数据(redis集合取数据)
- 中的所有数据使用Redis清空集合中的所有数据(redis 清除集合)
- 高手推荐的比较有用的ASP函数集合
- 集合类List与Dictonary实例练习