zoukankan      html  css  js  c++  java
  • 数组子集

    给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。

    说明:解集不能包含重复的子集。

    LeetCode:https://leetcode-cn.com/problems/subsets-ii

    public class Main {
    
        public static void main(String[] args) {
            System.out.println(subsetsWithDup(new int[]{1,2,2}));
        }
    
        public static List<List<Integer>> subsetsWithDup(int[] nums) {
            Arrays.sort(nums);
            List<List<Integer>> out = new ArrayList<>();
            List<Integer> local = new ArrayList<>();
            help(out,local,nums,0);
            return out;
        }
    
        private static void help(List<List<Integer>> out, List<Integer> local, int[] nums, int i) {
            out.add(new ArrayList<>(local));
            for (int j = i; j < nums.length; j++) {
                if (j==i || nums[j]!=nums[j-1]){
                    local.add(nums[j]);
                }
                else{
                    continue;//关键代码!
                }
                help(out,local,nums,j+1);
                local.remove(local.size()-1);
            }
        }
    }

    输出:

  • 相关阅读:
    A
    MongoDB小结17
    MongoDB小结16
    金蝶无法生成下推发票
    MongoDB小结15
    MongoDB小结14
    MongoDB小结13
    MongoDB小结12
    MongoDB小结11
    MongoDB小结10
  • 原文地址:https://www.cnblogs.com/iuyy/p/13504353.html
Copyright © 2011-2022 走看看