zoukankan      html  css  js  c++  java
  • 【leetcode-78 dfs+回溯】 子集

    子集

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

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

    示例:

    输入: nums = [1,2,3]
    输出:
    [
      [3],
      [1],
      [2],
      [1,2,3],
      [1,3],
      [2,3],
      [1,2],
      []
    ]

    我的:

        ArrayList<ArrayList<Integer>> result = new ArrayList<>();
        public ArrayList<ArrayList<Integer>> subsets(int[] S) {
            int length = S.length;
            ArrayList<Integer> temp = new ArrayList<>();
            Arrays.sort(S);
            //i为子集的长度,一次算一个长度的
            for (int i=0;i<=length;i++) {
                subsetsHelper(S,i,0,temp);
            }
            return result;
        }
    
        private void subsetsHelper(int[] S,int length,int start,ArrayList<Integer> temp) {
    
            //剩余长度为0
            if (0 == length) {
                //要new一个在加入结果集
                result.add(new ArrayList<>(temp));
            }
                for (int i = start; i < S.length; i++) {
                    temp.add(S[i]);
                    subsetsHelper(S, length - 1, i + 1, temp);
                    temp.remove(temp.size() - 1);
            }
        }

     

  • 相关阅读:
    埋点和用户画像
    HDR 2 数据集预处理
    HDR 1(介绍)
    关于AR
    Android驱动
    修改用户登陆次数
    使用plsql developer报错
    oracle客户端卸载
    项目:搜索查找
    使用BeautifulSoup模块解析HTML(文件example.html)
  • 原文地址:https://www.cnblogs.com/twoheads/p/10839190.html
Copyright © 2011-2022 走看看