一、题目
二、代码
class Solution
{
public:
vector<vector<int>> return_vector;
vector<int> path;
void back_track(int start_point,vector<int>& nums)
{
int i,j;
return_vector.push_back(path);
for(i=start_point;i<nums.size();i++)
{
if(i!=start_point&&nums[i]==nums[i-1]) continue;
path.push_back(nums[i]);
back_track(i+1,nums);
path.pop_back();
}
}
vector<vector<int>> subsetsWithDup(vector<int>& nums)
{
return_vector.clear();
path.clear();
sort(nums.begin(),nums.end());
back_track(0,nums);
return return_vector;
}
};
三、运行结果