class Solution {
void DFS(vector<int> &S,vector<vector<int>> &ans,vector<int> &vec,int start){
int i,len=S.size();
ans.push_back(vec);
if(len==start){
return;
}
for(i=start;i<len;++i){
if(i==start||S[i]!=S[i-1]){
vec.push_back(S[i]);
DFS(S,ans,vec,i+1);
vec.pop_back();
}
}
}
public:
vector<vector<int> > subsetsWithDup(vector<int> &S) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
vector<vector<int>> ans;
vector<int> vec;
sort(S.begin(),S.end());
DFS(S,ans,vec,0);
return ans;
}
};
Subsets II
最新推荐文章于 2022-05-07 14:28:24 发布