leetcode——90.子集II

public List<List<Integer>> subsetsWithDup(int[] nums) {
        Arrays.sort(nums);
        List<List<Integer>> result = new ArrayList<>();
        List<Integer> path = new ArrayList<>();
        dfs(nums,0,path,result);
        return result;
    }

    private void dfs(int[] nums, int start, List<Integer> path, List<List<Integer>> result) {
        result.add(new ArrayList<>(path));
        for(int i = start;i<nums.length;i++){
            if(i!=start && nums[i] == nums[i-1]){
                continue;
            }
            path.add(nums[i]);
            dfs(nums,i+1,path,result);
            path.remove(path.size()-1);
        }
    }

 

 ——2020.7.30

posted @ 2020-07-30 16:32  欣姐姐  阅读(137)  评论(0编辑  收藏  举报