1.Subsets and Subset II
Input: nums = [1,2,3]
Output:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]Solution: (Recursion)
class Solution
{
public:
void computeSubsets(vector<int> v, vector<vector<int>> &res, int start, vector<int> &nums, int n)
{
if (start == n)
{
res.push_back(v);
return;
}
computeSubsets(v, res, start + 1, nums, n);
v.push_back(nums[start]);
computeSubsets(v, res, start + 1, nums, n);
return;
}
vector<vector<int>> subsets(vector<int> &nums)
{
vector<int> v;
vector<vector<int>> res;
int n = nums.size();
computeSubsets(v, res, 0, nums, n);
return res;
}
};Solution: (Backtracking)
Subsets II: (No duplicates allowed)
Solution: (Backtracking)
Last updated