zoukankan      html  css  js  c++  java
  • 90. 子集 II

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

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

    示例:

    输入: [1,2,2]
    输出:
    [
      [2],
      [1],
      [1,2,2],
      [2,2],
      [1,2],
      []
    ]

    class Solution {
        public List<List<Integer>> subsetsWithDup(int[] nums) {
            List<List<Integer>> lists = new LinkedList<>();
            if(nums == null || nums.length == 0) return lists;
            Arrays.sort(nums);
            // boolean[] vi = new boolean[nums.length];
            bt(nums,0,new LinkedList<Integer>(),lists);
            return lists;
        }
        private void bt(int[] nums,int index,LinkedList<Integer> list,List<List<Integer>> lists){
            lists.add(new LinkedList<>(list));
            for(int i = index;i < nums.length;i++){
                // 注意: i > index
                if(i > index && nums[i] == nums[i - 1]) continue;
                list.add(nums[i]);
                bt(nums,i + 1,list,lists);
                list.removeLast();
            }
        }
    }
    一回生,二回熟
  • 相关阅读:
    冲刺成果演示
    c#输入串字符不符
    课堂测试—数据清洗
    mapreduce实验
    问题纠错
    软件需求阅读笔记第一篇
    暑假第五周总结
    暑假第四周总结
    暑假第三周总结
    暑假第二周总结
  • 原文地址:https://www.cnblogs.com/zzytxl/p/12682175.html
Copyright © 2011-2022 走看看