题目描述:
代码实现:
- 迭代法,首先初始化res为一个二维数组,包括一个[],在迭代的过程中,依次找含有nums[0],nums[1]…的子集,与前面的子集拼接,得到新的子集。
- 时间复杂度:O(N×2^N)
- 值得注意的是,这里必须声明一个变量len来存储res的长度,因为在第二层循环的过程中res的长度会发生变化
/**
* @param {number[]} nums
* @return {number[][]}
*/
var subsets = function(nums) {
var res = [[]]
for (var i = 0; i < nums.length; i++) {
var len = res.length
for (var j = 0; j < len; j++) {
res.push(res[j].concat([nums[i]]))
}
}
return res
};