[설명]
우리는 자리에 열거 시간이 걸릴합니다. 1112233 에 대한이 (INT는 내가 시작을 =; 나는 <= N-, I ++) // 어디서부터 시작-1하는 것은 마지막 위치가 취해진 다. 난> 시작 납입하는 경우 [I] == NUM [I -1]. 그래서 우리는 더 이상이 납입을해야 [I]가. NUM은 확실히 [I-1] 앞서간 것 때문입니다. 이때, 다음 NUM [I]을 단어. 생성 된 용액을 확실히 11 *****는로 (난은 그것이 111을 얻을 수있는 곳을 시작 == ****)
[코드]
class Solution {
public:
vector<vector<int>> ans;
void dfs(vector<int> &v,int start,vector<int> &temp){
ans.push_back(temp);
for (int i = start;i<(int)v.size();i++){
if (i>start && v[i]==v[i-1]) continue;
temp.push_back(v[i]);
dfs(v,i+1,temp);
temp.pop_back();
}
}
vector<vector<int>> subsetsWithDup(vector<int> v){
sort(v.begin(),v.end());
ans.clear();
vector<int> t;t.clear();
dfs(v,0,t);
return ans;
}
};