Skip to main content

Subsets

Problem statement​

Given an integer array nums of unique elements, return all possible subsets (the power set).

The solution set must not contain duplicate subsets. Return the solution in any order.

Example 1:

Input: nums = [1,2,3]Output: [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]

Example 2:

Input: nums = [0]Output: [[],[0]]

Constraints:

  • 1 <= nums.length <= 10
  • -10 <= nums[i] <= 10
  • All the numbers of nums are unique.

My solution​

/**
* @param {number[]} nums
* @return {number[][]}
*/
var subsets = function(nums) {
const results = []

function backTrack(stack, index) {
// console.log(`index => ${index}`)
results.push(stack);
if (index >= nums.length) {
return;
}

for (let i = index; i < nums.length; i++) {
backTrack([...stack, nums[i]], i + 1)
}
}

backTrack([], 0)
return results;
};