Given a set of distinct integers, nums, return all possible subsets (the power set).
Note: The solution set must not contain duplicate subsets.
Example:
Input: nums = [1,2,3] Output: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
class Solution { public void dfs(List<List<Integer>> ans, ArrayList<Integer>temp, int pos, int[] nums) { if (pos == nums.length) { ans.add(new ArrayList<>(temp)); return; } dfs(ans, temp, pos + 1, nums); temp.add(nums[pos]); dfs(ans, temp, pos + 1, nums); temp.remove(temp.size() - 1); } public List<List<Integer>> subsets(int[] nums) { Arrays.sort(nums); List<List<Integer>> ans = new ArrayList<>(); ArrayList<Integer> temp = new ArrayList<>(); //ans.add(new ArrayList<>()); dfs(ans, temp, 0, nums); return ans; } }