Given a collection of integers that might contain duplicates, S, return all possible subsets.
Note:
- Elements in a subset must be in non-descending order.
- The solution set must not contain duplicate subsets.
For example,
If S =[1,2,2], a solution is:[ [2], [1], [1,2,2], [2,2], [1,2], [] ]
public class Solution { public ArrayList> subsetsWithDup(int[] num) { ArrayList > results = new ArrayList >(); ArrayList result = new ArrayList (); Arrays.sort(num); dfs(num,0,result,results); return results; } private void dfs(int[] num, int step, ArrayList result, ArrayList > results) { if(!results.contains(result)) results.add(new ArrayList (result)); for(int i=step;i
跟上题一样,可以2种方式加上去除重复。第二种去重:
public class Solution { public ArrayList> subsetsWithDup(int[] num) { ArrayList > results = new ArrayList >(); ArrayList result = new ArrayList (); Arrays.sort(num); dfs(num,0,result,results); return results; } private void dfs(int[] num, int step, ArrayList result, ArrayList > results) { results.add(new ArrayList (result)); for(int i=step;i