【LeetCode 90】子集 II

トピックリンク

[説明]


私たちは、数字で列挙時間を取りたいです。1112233 (; I <= N-;私はスタート= INT I ++)のための//開始-1は、最後に撮影した位置です。i>が起動し、NUM場合は、[I] == NUM [I -1]。 だから我々はもはやこのNUMを取るべきである[i]がA。numが確かに[I-1] Aの前に行っていたので。このとき、その後、NUM [i]の言葉を取ります。得られた溶液を確かとして11 ***** (それが**** 111を取ることができるが得られる。ここで、iは開始==)









[コード]

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