Advertisement
Guest User

subset powerset c++

a guest
Oct 18th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.77 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <vector>
  3.  
  4.  
  5. using namespace std;
  6.  
  7. // given {1,2,3}, return {{}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}
  8. vector<vector<int>> subsequence(vector<int> arr) {
  9.     if (!arr.size()) {
  10.         vector<int> empty_set;
  11.         vector<vector<int>> retval;
  12.         retval.push_back(empty_set);
  13.         return retval;  // empty set
  14.     }
  15.  
  16.     int popped = arr[arr.size() - 1];
  17.     arr.pop_back(); // rest
  18.    
  19.     vector<vector<int>> subsets = subsequence(arr);
  20.     vector<vector<int>> result;
  21.     for (int i = 0; i < subsets.size(); i++) {
  22.         result.push_back(subsets[i]);
  23.         subsets[i].push_back(popped);
  24.         result.push_back(subsets[i]);
  25.     }
  26.     return result;
  27. }
  28.  
  29. int _tmain(int argc, _TCHAR* argv[])
  30. {
  31.     vector<vector<int>> res = subsequence(vector<int>{1, 2, 3});
  32.     return 0;
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement