标签:logs rem .so blog void list solution res pos
Given a collection of integers that might contain duplicates, nums, return all possible subsets. Note: The solution set must not contain duplicate subsets. For example, If nums = [1,2,2], a solution is: [ [2], [1], [1,2,2], [2,2], [1,2], [] ]
public List<List<Integer>> subsetsWithDup(int[] nums) { List<List<Integer>> result = new ArrayList<>(); List<Integer> list = new ArrayList<Integer>(); if (nums.length == 0) { result.add(list); return result; } Arrays.sort(nums); helper(result, list, nums, 0); return result; } private void helper (List<List<Integer>> result, List<Integer> list, int[] nums, int pos) { /* if (result.contains(list)) { return; }*/ result.add(new ArrayList(list)); for (int i = pos; i < nums.length; i++) { if (i != pos && nums[i] == nums[i - 1]) { continue; } list.add(nums[i]); helper(result, list, nums, i + 1); list.remove(list.size() - 1); } }
标签:logs rem .so blog void list solution res pos
原文地址:http://www.cnblogs.com/apanda009/p/7229971.html