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

    子集

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

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

    示例:

    输入: [1,2,2]

    输出:

    [

    [2],

    [1],

    [1,2,2],

    [2,2],

    [1,2],

    []

    ]

     1 import java.util.ArrayList;
     2 import java.util.Arrays;
     3 import java.util.List;
     4 
     5 class Solution {
     6     public List<List<Integer>> subsetsWithDup(int[] nums) {
     7         List<List<Integer>> list = new ArrayList<>();
     8         if(nums == null || nums.length == 0){
     9             return list;
    10         }
    11         List<Integer> data = new ArrayList<>();
    12         int length = nums.length;
    13         boolean[] visit = new boolean[length];
    14         list.add(data);
    15         Arrays.sort(nums);
    16         dfs(list,data,length,nums,0,visit);
    17         return list;
    18     }
    19 
    20     void dfs(List<List<Integer>> list,List<Integer> data,int length,int[] nums,int start,boolean[] visit){
    21         for(int i = start;i < length;i++){
    22             if(!visit[i]){
    23                 if(i > 0 && nums[i] == nums[i - 1] && !visit[i - 1]){
    24                     continue;
    25                 }
    26                 data.add(nums[i]);
    27                 visit[i] = true;
    28                 list.add(new ArrayList<>(data));
    29                 dfs(list,data,length,nums,i + 1,visit);
    30                 visit[i] = false;
    31                 data.remove(data.size() - 1);
    32             }
    33         }
    34     }
    35 }

     

  • 相关阅读:
    品优购项目(web)
    Linux
    web前端面试题
    三级网络
    Vue报错:TypeError: Cannot create property ‘xxx‘ on string ‘xxxx
    vue 动态添加页面背景色
    vue 打开新页面 页面滚动到顶部
    ios 系统 h5 页面不发送请求
    小程序返回上一页
    小程序动态设置页面背景色、
  • 原文地址:https://www.cnblogs.com/kexinxin/p/10163071.html
Copyright © 2011-2022 走看看