首页 > 代码库 > 78. Subsets

78. Subsets

Given a set of distinct integers, nums, return all possible subsets.

Note: The solution set must not contain duplicate subsets.

For example,
If nums = [1,2,3], a solution is:

[  [3],  [1],  [2],  [1,2,3],  [1,3],  [2,3],  [1,2],  []]

 

这道题也是需要注意不能重复。所以backtracking里需要加sentinel

 

 

public IList<IList<int>> Subsets(int[] nums) {        var res = new List<IList<int>>();        Backtracking(nums,new List<int>(),res,0);        return res;    }        private void Backtracking(int[] nums,  IList<int> cur,IList<IList<int>> res,int sentinel)    {                  res.Add(new List<int>(cur));               for(int i =sentinel ;i< nums.Count();i++)        {            cur.Add(nums[i]);            Backtracking(nums,cur,res,i+1);            cur.RemoveAt(cur.Count()-1);        }    }

 

78. Subsets