class Solution {
public:
vector<int>path;
vector<vector<int> >ans;
void backtracking(vector<int>nums,int star,vector<bool>&flag){
if(star>=nums.size())return;
for(int i=star;i<nums.size();i++){
if(i>0&&nums[i]==nums[i-1]&&flag[i-1]==false)continue;
path.push_back(nums[i]);
flag[i]=true;
ans.push_back(path);
backtracking(nums,i+1,flag);
flag[i]=false;
path.pop_back();
}
}
vector<vector<int>> subsetsWithDup(vector<int>& nums) {
vector<bool>flag(nums.size(),false);
sort(nums.begin(),nums.end());
ans.push_back(path);
backtracking(nums,0,flag);
return ans;
}
};
90. 子集 II
最新推荐文章于 2024-09-13 16:27:15 发布