Recursive

class Solution {

public:

vector<vector<int>> ret;

vector<int> path;

vector<vector<int>> subsets(vector<int>& nums) {

sort(nums.begin(), nums.end());

helper(nums,0);//不是for loop!!!

return ret;

}

void helper(vector<int>& nums, int step){

if(step==nums.size()){

ret.push_back(path);

return;

}

helper(nums,step+1);

path.push_back(nums[step]);

helper(nums,step+1);

path.pop_back();

}

};

Last updated

Was this helpful?