SubsetII
LC 90
public class Solution {
public List<List<Integer>> subsetsWithDup(int[] nums) {
// write your code here
List<List<Integer>> result = new ArrayList<List<Integer>>();
if(nums == null || nums.length ==0) {
return result;
}
Arrays.sort(nums);
ArrayList<Integer> list = new ArrayList<Integer>();
helper(result, list, nums, 0);
return result;
}
public void helper(List<List<Integer>> result, ArrayList<Integer> list, int[] nums, int position){
result.add(new ArrayList<Integer>(list));
for(int i = position ; i < nums.length; i++){
//一开始犯错误写成了!=0, 并且break
if(i!=position && nums[i] == nums[i-1]){
continue;
}
list.add(nums[i]);
helper(result, list,nums,i+1);
list.remove(list.size() - 1);
}
}
}