90. Subsets II (sets)
同Subset
就是要先进行排序,backtrack的时候不要把重复的加入list
1 class Solution { 2 public List<List<Integer>> subsetsWithDup(int[] nums) { 3 List<List<Integer>> res = new ArrayList<>(); 4 Arrays.sort(nums); 5 backtrack(res, new ArrayList<>(), nums, 0); 6 return res; 7 } 8 public void backtrack(List<List<Integer>> res, List<Integer> list, int[] nums, int position) { 9 res.add(new ArrayList<>(list)); 10 for(int i = position; i < nums.length; i++) { 11 if(i > position && nums[i] == nums[i - 1]) continue; 12 list.add(nums[i]); 13 backtrack(res, list, nums, i+1); 14 list.remove(list.size() - 1); 15 } 16 } 17 }