題目描述:
代碼實現:
- 迭代法,首先初始化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
};