贴一下力扣剑指offer 72
之前考研就写过的题目,当时感觉很难,现在只要把握住:一共遍历的次数也就是子集的数目,转化成二进制之后所有1的位置要加到子集里,这个找1的过程可以用二进制右移,如果能整除2则末位0,反之才加入子集
二进制做 77 — 100
/**
* @param {number[]} nums
* @return {number[][]}
*/
var subsets = function(nums) {
let n = Math.pow(2, nums.length);
res = [];
for (let i = 0;i < n;i++) {
let t = [];
for (let j = 0;j < nums.length;j++){
if ((i >> j) % 2) {
t.push(nums[j]);
}
}
res.push(t);
}
return res;
};