Given an integer array nums of unique elements, return all possible 

subsets

 (the power set).

The solution set must not contain duplicate subsets. Return the solution in any order.

Example 1:

Input: nums = [1,2,3] Output: [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]

Example 2:

Input: nums = [0] Output: [[],[0]]

Constraints:

  • 1 <= nums.length <= 10
  • -10 <= nums[i] <= 10
  • All the numbers of nums are unique.
public void subset(int[] nums){
	List<List<Integer>> res = new ArrayList<Integer>();
	subsetRec(nums, 0, new ArrayList<>(), res);
}
 
public void subsetRec(int[] nums, int index, List<Integer> currRes, List<List<Integer>> res){
	List<List<Integer>> res = new ArrayList<Integer>();
	for(int i=index; i<nums.length ; i++){
			if(i != index && nums[i] == nums[i-1])
				continue;
			currRes.add(i);
			subsetRec(nums, i+1, currRes, res);
			currRes.remove(currRes.length()-1);
	}
}