Find All Subsets (Power Set)?
List<List<int>> Subsets(int[] nums)
List<List<int>> result = new List<List<int>>();
GenerateSubsets(nums, 0, new List<int>(), result);
return result;
void GenerateSubsets(int[] nums, int index, List<int> current,
List<List<int>> result)
if (index == nums.Length)
result.Add(new List<int>(current));
return;
// Exclude nums[index]
GenerateSubsets(nums, index + 1, current, result);
// Include nums[index]
current.Add(nums[index]);
GenerateSubsets(nums, index + 1, current, result);
current.RemoveAt(current.Count - 1);
Follow on:
Explanation:
Backtracking approach includes/excludes each element.