78. Subsets
来源:互联网 发布:歌斐资产 知乎 编辑:程序博客网 时间:2024/06/11 22:52
题目
Given a set of distinct integers, nums, return all possible subsets.
Note: 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], []]
分析
求n个数字的所有组合问题,分别传入数组nums,当前下标beg,组合的数字个数n,保存结果的二维向量res,还有暂存当前结果的temp,当n为0时代表找到全部的组合,压入res中,否则如果当前下标beg+n大于nums.size(),代表剩余数字无法构造组合,或者beg到nums的末尾,都直接返回,如果下标位置合法,则分两种情况,一种是当前元素算作组合中的一个元素,只需要从beg+1开始找到n-1的组合即可,另一种是当前元素不算组合数,则弹出当前元素,从beg+1开始找n的组合。
class Solution {public: void combine(vector<int>& nums,int beg,int n,vector< vector<int> >& res,vector<int>& temp){ if(n==0){ res.push_back(temp); return ; } if(beg+n>nums.size()||beg==nums.size()){ return ; } temp.push_back(nums[beg]); combine(nums,beg+1,n-1,res,temp); temp.pop_back(); combine(nums,beg+1,n,res,temp); } vector<vector<int>> subsets(vector<int>& nums) { vector< vector< int > > res; int n=nums.size(); res.push_back(vector<int>()); for(int i=1;i<=n;++i){ vector<int> temp; combine(nums,0,i,res,temp); } return res; }};
阅读全文
0 0
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- C语言内存布局
- spring-spring的配置
- 最长递增子序列
- Shell定时删除指定时间之前的文件
- DHCP设置之起始地址与结束地址
- 78. Subsets
- dom4j的详解
- HDFS-HA-federation的机制和功能组件
- Java常见面试题—GC垃圾收集器
- 程序员面试金典(4):空格替换(python)
- 交换排序:根据序列中两个元素关键字的比较结果来对换这两个记录在序列中的位置。
- springmvc
- 数据结构之LinkList
- 常用的mq