print all unique subsets
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
// Function to print the elements of a vector
void printVector(vector<int> const &out)
{
for (int i: out)
cout << i << " ";
cout << '\n';
}
// Recursive function to print all distinct subsets of S
// S --> input set
// out --> vector to store subset
// i --> index of next element in set S to be processed
void findPowerSet(int S[], vector<int> &out, int i)
{
// if all elements are processed, print the current subset
if (i < 0)
{
printVector(out);
return;
}
// include current element in the current subset and recur
out.push_back(S[i]);
findPowerSet(S, out, i - 1);
// exclude current element in the current subset
out.pop_back(); // backtrack
// remove adjacent duplicate elements
while (S[i] == S[i-1])
i--;
// exclude current element in the current subset and recur
findPowerSet(S, out, i - 1);
}
// Program to generate all distinct subsets of given set
int main()
{
int S[] = { 1, 3, 1 };
int n = sizeof(S) / sizeof(S[0]);
// sort the set
sort(S, S + n);
// create an empty vector to store elements of a subset
vector<int> out;
findPowerSet(S, out, n-1);
return 0;
}
Are there any code examples left?
New code examples in category C++
-
C++ 2023-04-28 17:44:25
-
C++ 2022-03-27 19:20:39 lists occurrences of characters in the string c++
-
C++ 2022-03-27 18:00:14 variabili in c++
-
C++ 2022-03-27 17:10:08 repeat character n times c++
-
C++ 2022-03-27 15:50:07 delete an array c++
-
C++ 2022-03-27 15:40:12 C++ pointer to base class
-
C++ 2022-03-27 12:15:21 find the graph is minimal spanig tree or not
-
C++ 2022-03-27 11:30:15 multi variable assignment cpp
-
C++ 2022-03-27 11:05:17 c++ pi float
-
C++ 2022-03-27 10:20:12 why exceptions can lead to memory leaks