Skip to content

Latest commit

 

History

History
37 lines (25 loc) · 920 Bytes

File metadata and controls

37 lines (25 loc) · 920 Bytes

Problem

class Solution {

    Set<List<Integer>> result = new HashSet<>();
    public void getSubSets(int[] nums, int start,int end, List<Integer> data)
    {
            if(start>=end){
                List<Integer> tmp=new ArrayList<Integer>();
                tmp.addAll(data);
                //Collections.sort(tmp);
                result.add(tmp);
                return;
            }
        
            
           getSubSets(nums, start+1, end, data); 

           data.add(nums[start]);

           getSubSets(nums, start+1, end, data); 

           data.remove(data.size()-1);
        
    }
    
    public List<List<Integer>> subsetsWithDup(int[] nums) { 
        
        Arrays.sort(nums);
        
        getSubSets(nums, 0, nums.length, new ArrayList<Integer>());
        
        return result.stream().collect(Collectors.toList());
    }
}