Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <vector>
- using namespace std;
- // given {1,2,3}, return {{}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}
- vector<vector<int>> subsequence(vector<int> arr) {
- if (!arr.size()) {
- vector<int> empty_set;
- vector<vector<int>> retval;
- retval.push_back(empty_set);
- return retval; // empty set
- }
- int popped = arr[arr.size() - 1];
- arr.pop_back(); // rest
- vector<vector<int>> subsets = subsequence(arr);
- vector<vector<int>> result;
- for (int i = 0; i < subsets.size(); i++) {
- result.push_back(subsets[i]);
- subsets[i].push_back(popped);
- result.push_back(subsets[i]);
- }
- return result;
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- vector<vector<int>> res = subsequence(vector<int>{1, 2, 3});
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement