zoukankan      html  css  js  c++  java
  • Subsets

    Given a set of distinct integers, S, return all possible subsets.

    Note:

    • Elements in a subset must be in non-descending order.
    • The solution set must not contain duplicate subsets.

    For example,
    If S = [1,2,3], a solution is:

    [
      [3],
      [1],
      [2],
      [1,2,3],
      [1,3],
      [2,3],
      [1,2],
      []
    ]

    [解题思路]
    这个就是排列组合中的排列问题。递归如下逻辑:
    Func Generate
    对于输入字符串s的每一位字符
            选取该字符到子集合中,并输出
            如果,当前字符不是最后一位字符
                     递归调用Generate,处理下一位字符

    public class Solution {
        public ArrayList<ArrayList<Integer>> subsets(int[] S) {
            Arrays.sort(S);
            ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();
            ArrayList<Integer> list = new ArrayList<Integer>();
            generate(result, list, S, 0, S.length);
            return result;
        }
        
        
        public void generate(ArrayList<ArrayList<Integer>> result, ArrayList<Integer> list, int[] S, int depth, int length){
            result.add(list);
            if(depth == length) return;
            for(int i = depth; i< length; i++){
                ArrayList<Integer> tmp = new ArrayList<Integer>();
                tmp.addAll(list);
                tmp.add(S[i]);
                generate(result, tmp, S, i+1, length);
            }
        }
    }
  • 相关阅读:
    函数集
    2019.1.7
    第九次团队作业-测试报告与用户使用手册
    α版本升升备忘录下载链接
    系统设计和任务分配(个人)
    团队作业说明
    备忘录-团队选题报告
    需求分析与原型设计---升升备忘录
    项目——四则运算器
    Hello Django
  • 原文地址:https://www.cnblogs.com/RazerLu/p/3537451.html
Copyright © 2011-2022 走看看