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);        
        }       
    }
}

results matching ""

    No results matching ""