78.集合的子集
题目:78.子集
//实际上就是k=0,1,2,,,nums.size()的组合问题
class Solution {
public:
vector<int> path;
vector<vector<int>> finalPath;
void backtracking(vector<int> nums,int startIndex,int k,vector<int> &path,vector<vector<int>> &finalPath){
if(path.size()==k){
finalPath.push_back(path);
return;
}
for(int i=startIndex;nums.size()-i+path.size()>=k;i++){
path.push_back(nums[i]);
backtracking(nums,i+1,k,path,finalPath);
path.pop_back();
}
}
vector<vector<int>> subsets(vector<int>& nums) {
finalPath.push_back(path);
for(int k=1;k<=nums.size();k++)
backtracking(nums,0,k,path,finalPath);
return finalPath;
}
};

浙公网安备 33010602011771号