41.子集

题目描述:

在这里插入图片描述

代码实现:

  • 迭代法,首先初始化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
};

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章