Example #1
0
 vector<vector<int> > subsets(vector<int> &S) {
 	// Start typing your C/C++ solution below
 	// DO NOT write int main() function
 	vector<vector<int> > result;
 	vector<int> output;
 	if(S.size() ==0) return result;
 	result.push_back(output);
 	sort(S.begin(), S.end());
 	generateSub(S, 0, result, output);
 }
Example #2
0
    vector<vector<int> > subsets(vector<int> &S) {
        vector<vector<int> > result;

        vector<int> current;

        if(S.size() == 0) return result;

        result.push_back(current);
        sort(S.begin(), S.end());
        generateSub(S, 0, result, current);
    }
Example #3
0
 void generateSub(vector<int> &s, int step, vector<vector<int> > &result, vector<int> &current)
 {
 	for (int i = step; i < s.size(); ++i)
 	{
 		current.push_back(s[i]);
 		result.push_back(current);
 		if (i < s.size() - 1)
 		{
 			generateSub(s, i + 1, result, current);
 		}
 		current.pop_back();
 	}
 }
Example #4
0
 void generateSub(
 	vector<int> &s,
 	int step,
 	vector<vector<int> > &result,
 	vector<int>& output)
     {
     	for(int i = step;i<s.size(); i++ )
     	{
     		output.push_back(s[i]);
     		result.push_back(output);
     		if(i< s.size()-1)
     			generateSub(s, i+1, result, output);
     		output.pop_back();
     	}
     }