代码
public class Solution {
public IList<IList<int>> Subsets(int[] nums) {
List<IList<int>> result=new List<IList<int>>();
for(int i=0;i<nums.Length;i++)
{
int counttemp=result.Count();
for(int j=0;j<counttemp;j++)
{
List<int> temp1=new List<int>(result.ElementAt(j));
temp1.Add(nums[i]);
result.Add(temp1);
}
List<int> temp2=new List<int>();
temp2.Add(nums[i]);
result.Add(temp2);
}
result.Add(new List<int>());
return result;
}
}
思路
参考了题解的方法 递归思想
单独考虑给定数组中的每个数
令result为要返回的结果 其中初始为一个空集
考虑数n时 将list中原有的集合的拷贝都加上数n 然后再将这些集合拷贝加回result中