From 2c8c10a619a7b02bb3018c5c7b66f2b4b0abb875 Mon Sep 17 00:00:00 2001 From: MohitGupta121 Date: Sun, 17 Oct 2021 18:58:29 +0530 Subject: [PATCH] Code for generation of subsets using recursion and backtracking --- ...bsets_using_Recursion_and_Backtracking.cpp | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Generation_of_Subsets_using_Recursion_and_Backtracking.cpp diff --git a/Generation_of_Subsets_using_Recursion_and_Backtracking.cpp b/Generation_of_Subsets_using_Recursion_and_Backtracking.cpp new file mode 100644 index 0000000..3184e57 --- /dev/null +++ b/Generation_of_Subsets_using_Recursion_and_Backtracking.cpp @@ -0,0 +1,37 @@ +#include +#include +using namespace std; + +vector > allSubsets; + +void generate(vector &subset, int i, vector &nums){ + if(i == nums.size()){ + allSubsets.push_back(subset); + return; + } + + // ith element not in subset + generate(subset, i+1, nums); + + // ith element in subset + subset.push_back(nums[i]); + generate(subset, i+1, nums); + subset.pop_back(); +} + +int main(){ + int n; + cin >> n; + vector nums(n); + for(int i = 0 ; i < n; ++i){ + cin >> nums[i]; + } + vector empty; + generate(empty, 0, nums); + for(auto subset : subsets){ + for(auto ele : subset){ + cout << ele << " "; + } + cout << endl; + } +}