[LeetCode 90] 아이 집 II

주제 링크

[설명]


우리는 자리에 열거 시간이 걸릴합니다. 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;
}

};

추천

출처www.cnblogs.com/AWCXV/p/11954576.html