LEETCODE: Subsets II

来源:互联网 发布:windows repair 3.1 编辑:程序博客网 时间:2024/05/17 02:48

Given a collection of integers that might contain duplicates, S, return all possible subsets.

Note:

  • Elements in a subset must be in non-descending order.
  • The solution set must not contain duplicate subsets.

For example,
If S = [1,2,2], a solution is:

[  [2],  [1],  [1,2,2],  [2,2],  [1,2],  []]


其实差别就在于,LEETCODE中有很多类似的:

            if(pre == S[ii])                continue;


class Solution {public:    void search(vector<vector<int> > &results, vector<int> &temp, vector<int> &S, int idx) {        int pre = 0x7fffffff;        for(int ii = idx + 1; ii < S.size(); ii ++) {            if(pre == S[ii])                continue;                        pre = S[ii];             temp.push_back(pre);            results.push_back(temp);            search(results, temp, S, ii);            temp.pop_back();        }    }    vector<vector<int> > subsetsWithDup(vector<int> &S) {        vector<vector<int> > results;        vector<int> temp;        results.push_back(temp);        sort(S.begin(), S.end());        search(results, temp, S, -1);        return results;    }};


0 0
原创粉丝点击