Given a set S of n distinct numbers, print(enumerate) all of its subsets.
Related: Number of Subsets of a Set and Number of Subsets of Size K.
/*
Time Complexity - O(n * 2^n)
Space Complexity - O(n)
*/
function printSubsets(S) {
function subsetHelper(slate, array) {
if (array.length === 0) console.log(slate)
else {
// exclude
subsetHelper(slate, array.slice(1))
// include
subsetHelper([...slate, array[0]], array.slice(1))
}
}
subsetHelper([], S)
}
// Tests
printSubsets([1, 2, 3])
printSubsets(['a', 'b', 'c', 'd'])