返回一个数组所有的子集。
题目详细:https://leetcode-cn.com/problems/subsets/description/
如图为目标要求
将输出拆分来看,即单独输出1、2、3,然后再输出123排列组合后的数组。单独的输出通过slice()实现。
排列组合的输出,通过递归调用实现。
这道题不太会,参考的一篇博客。https://blog.csdn.net/qq_29091239/article/details/81120885
理解算法思路参考:https://blog.csdn.net/happyaaaaaaaaaaa/article/details/51604217
/**
* @param {number[]} nums
* @return {number[][]}
*/
var subsets = function(nums) {
var res = [];
//数组输入nums,从0开始
count(nums, [], 0);
function count(arr, temp, start) {
res.push(temp.slice(0));//slice()从0开始返回temp中的所有元素,
for(var i = start; i < arr.length; i++) {
temp.push(nums[i]);
count(arr, temp, i + 1);//递归,从1、2、3。。。开始
temp.pop();//返回temp中的最后一个元素
}
}
return res;
};