Solution: iterative approach is not difficult. Here give a recursive approach:
void _print(const vector<int>& set) { i; i<< set[i] << " "; cout << endl; } void print_set(const vector <int>&set, int i, vector<int>& output) { if(i >= set.size()) _print(output); else { output.push_back(set[i]); print_set(set, i+1, output); // code to handle duplicates int tmp = output.back(); output.pop_back(); if(output.size()>0 && tmp== output.back()) return; print_set(set, i+1, output); } } int main() { vector<int> set,output; set.push_back(1); set.push_back(2); set.push_back(3); set.push_back(4); print_set(set, 0, output); }
No comments:
Post a Comment