Exemplo n.º 1
0
 vector<vector<int> > subsets(vector<int> &S) {
     vector<vector<int> > res;
     vector<int> path;
     sort(S.begin(), S.end());
     subsetsHelper(res, path, S, 0);
     return res;
 }
Exemplo n.º 2
0
 void subsetsHelper(vector<vector<int> >& res, vector<int>& path, const vector<int>& S, int pos) {
     res.push_back(path);
     for(int i = pos; i < S.size(); ++i) {
         path.push_back(S[i]);
         subsetsHelper(res, path, S, i+1);
         path.pop_back();
     }
 }
vector<vector<int> > subsetsHelper(vector<int> v, vector<int> temp,
									vector<vector<int> > r, int s, int e, int index) {
	r = updateResult(r, temp, index);
	for(int i=s; i<=e; i++) {
		temp[index] = v[i];
		//printVector(temp);
		r = subsetsHelper(v, temp, r, s+1, e, index+1);
		s += 1;
	}
	return r;
}
Exemplo n.º 4
0
 void subsetsHelper(vector<int>& nums, int start, int size, vector<int> solution, vector<vector<int>>& result) {
     if (size == 0) {
         result.push_back(solution);
         return;
     }
     
     for (int i = start; i < nums.size(); i++) {
         solution.push_back(nums[i]);
         subsetsHelper(nums, i+1, size-1, solution, result);
         solution.pop_back();
     }
 }
Exemplo n.º 5
0
 void subsetsHelper(int start,vector<int>&nums){
     if(start==nums.size())
         return;
     
     for(int i=start;i<nums.size();i++){
         if(i>start&&nums[i]==nums[i-1])
             continue;
         tem.push_back(nums[i]);
         res.push_back(tem);
         subsetsHelper(i+1,nums);
         tem.pop_back();
     }
 }
Exemplo n.º 6
0
 vector<vector<int>> subsets(vector<int>& nums) {
     vector<vector<int>> result;
     vector<int> solution;
     // empty set
     result.push_back(solution);
     
     if (nums.size() <= 0) {
         return result;
     }
     
     sort(nums.begin(), nums.end());
     
     int n = nums.size();
     for (int sub_size = 1; sub_size <= n; sub_size++) {
         // using backtracking, get all subset, which size is sub_size
         subsetsHelper(nums, 0, sub_size, solution, result);
     }
     return result;
 }
Exemplo n.º 7
0
 vector<vector<int>> subsetsWithDup(vector<int>& nums) {
     sort(nums.begin(),nums.end());
     res.push_back(vector<int>());
     subsetsHelper(0,nums);
     return res;
 }