Subsets II 集合(可以选若干次)

来源:互联网 发布:青春旅社网络更新时间 编辑:程序博客网 时间:2024/06/06 09:30
class Solution {
public:
        void subsets(vector<int> &S,int pos,vector<vector<int>> &ret,vector<int> &tmp)
    {
        ret.push_back(tmp);
        for(int i=pos;i<S.size();i++)
        {  
          while(i!=pos&&i<S.size()&&S[i]==S[i-1])
          i++;
          if(i==S.size())
          return;
          tmp.push_back(S[i]);
          subsets(S,i+1,ret,tmp);
          tmp.pop_back();
        }
        return;
    }
    vector<vector<int> > subsetsWithDup(vector<int> &S) {
        sort(S.begin(),S.end());
        vector<vector<int>> ret;
        vector<int> tmp;
        subsets(S,0,ret,tmp);
        return ret;
    }
};
0 0
原创粉丝点击