leetcode-78-subsets

题目

给定一个数组,输出数组中元素所有可能的组合数

分析

距离说明:
输入:[1,2,3]
输出:
[
  [3],
  [1],
  [2],
  [1,2,3],
  [1,3],
  [2,3],
  [1,2],
  []
]

C++代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public:
vector<vector<int>> subsets(vector<int>& nums) {
vector<vector<int>> res;
vector<int> tmp;
getsubsets(res, tmp, nums, 0);
return res;
}

void (vector<vector<int>> &res, vector<int> &tmp, vector<int> nums, int start){
res.push_back(tmp);
for(int i = start; i < nums.size(); i++){
tmp.push_back(nums[i]);
getsubsets(res, tmp, nums, i+1);
tmp.pop_back();
}
}
};