78.子集
题目:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
示例:
输入: nums = [1,2,3]
输出:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
来源:力扣(LeetCode)
原题链接
解题代码:位运算
public IList <IList <int>> Subsets(int[] nums)
{
double length = nums.Length;
double size = Math.Pow(2.0, length);
IList<IList<int>> result = new List<IList<int>>();
for(int i=0;i<size;i++)
{
IList<int> a = new List<int>();
for(int j=0;j<length;j++)
{
int bit = 1<< j;
if((bit&i)!=1)
{
a.Add(nums[j]);
}
}
result.Add(a);
}
return result;
}