题目描述
https://leetcode.cn/problems/subsets/
思路
按元素的个数开始排,0(空集)、1、2、…
代码
class Solution {
vector<int> path;
vector<vector<int>> ret;
int n;
public:
void dfs(vector<int>& nums, int now){
ret.push_back(path);//空集
for(int i = now;i < n; i++){
path.push_back(nums[i]);
dfs(nums, i + 1);
path.pop_back();//回溯
}
}
vector<vector<int>> subsets(vector<int>& nums) {
n = nums.size();
dfs(nums, 0);
return ret;
}
};