题目链接:
LeetCode 90 — Subsets II
AC代码:
public class Problem90 {
public static void main(String[] args) {
// TODO Auto-generated method stub
}
public List<List<Integer>> subsetsWithDup(int[] nums) {
List<List<Integer>> list=new ArrayList<List<Integer>>();
List<Integer> go =new ArrayList<Integer>();
list.add(new ArrayList<Integer>(go));
Arrays.sort(nums);
fillElement(nums, list, go, 0);
return list;
}
public void fillElement(int[]nums,List<List<Integer>> list,List<Integer> go,int start){
for(int i=start;i<nums.length;i++){
if(i!=start && nums[i-1]==nums[i])continue;
go.add(nums[i]);
fillElement(nums, list, go, i+1);
list.add(new ArrayList<Integer>(go));
go.remove(go.size()-1);
}
}
}