Write a method to return all subsets of a set. The elements in a set are pairwise distinct.
Note: The result set should not contain duplicated subsets.
Example:
Input: nums = [1,2,3] Output: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
Backtracking
/**
* @param {number[]} nums
* @return {number[][]}
*/
var subsets = function (nums) {
let prev = [];
let res = [];
dfs(nums, 0, prev, res);
return res;
};
function dfs(nums, depth, prev, res) {
res.push(prev.slice());
for (let i = depth; i < nums.length; i++) {
prev.push(nums[i]);
depth++;
dfs(nums, depth, prev, res);
prev.pop();
}
}