剑指 Offer II 079. 所有子集

146 阅读1分钟

剑指 Offer II 079. 所有子集

已知数组长度n,可以求出,组合后的数组长度,2^n (1<<n),组合后数组的下标,把他转成2进制形式,然后取出指数位置,所有位置对应这nums下标

var subsets = function(nums) {
  var res = [];
  var n = nums.length;
  for (var j = 0; j < (1 << n); j++) {
      var arr = [];
      for (var i = 0; i < n; ++i) {
          if (j & (1 << i)) {
              arr.push(nums[i]);
          }
      }
      res.push(arr);
  }
  return res;
};

image.png

image.png