题目:
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
方法一:
n个元素的集合的子集为2^n个,因此可以用二进制来表示每一个子集,二进制位为1则选取对应位上的元素。
class Solution {
public List<List<Integer>> subsets(int[] nums) {
List<List<Integer>> res=new ArrayList<>();
int len=nums.length;
for(int i=0;i<(1<<len);i++){
List<Integer> tmp=new ArrayList<>();
for(int j=0;j<len;j++){
if(((i>>j)&1)==1){
tmp.add(nums[j]);
}
}
res.add(tmp);
}
return res;
}
}