难度:中等
题目描述:
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
示例:
输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]
解题思路:
var subsets = function(nums) {let ws = [[]];for(let i=0; i < nums.length; ++i) {for(let j=0, len = ws.length; j < len; ++j) {ws.push(ws[j].concat([nums[i]]));}}return ws;};
回朔算法
var subsets = function(nums) {let n = nums.length;let tmpPath = [];let res = [];let backtrack = (tmpPath,start) => {res.push(tmpPath);for(let i = start;i < n;i++){tmpPath.push(nums[i]);backtrack(tmpPath.slice(),i+1);tmpPath.pop();}}backtrack(tmpPath,0);return res;};
