• 第78题:子集


    一. 问题描述

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

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

    示例:

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

    输出:

    [

      [3],

      [1],

      [2],

      [1,2,3],

      [1,3],

      [2,3],

      [1,2],

      []

    ]

    二. 解题思路

    解题思路:采用回溯算法进行求解。递归函数(全局列表list,局部列表temlist,数组num,temlist最后一位的位数k)

    步骤一:首先构建上述所示递归函数,递归函数判断条件是(每次进行递归时都输出temlist)

    步骤二:在往temlist添加数据时,需要进行判断k是否小于添加数据的数组位数。是:添加,否:跳过。

    步骤三:重复上述两个步骤。

    三. 执行结果

    执行用时 :1 ms, 在所有 java 提交中击败了99.77%的用户

    内存消耗 :36.2 MB, 在所有 java 提交中击败了60.10%的用户

    四. Java代码

    class Solution {
        public List<List<Integer>> subsets(int[] nums) {
            List<List<Integer>> list=new ArrayList<List<Integer>>();
            List<Integer> temlist=new ArrayList<Integer>();
            com(list,temlist,nums,-1);
            return list;
        }
        
        public void com(List<List<Integer>> list,List<Integer> temlist, int[] num,int k) {
            list.add(temlist);
            
            for(int i=k+1;i<num.length;i++)
            {
                List<Integer> atemlist=new ArrayList<Integer>(temlist);
                atemlist.add(num[i]);
                int m=i;
                com(list,atemlist,num,m);
            }
        }
    }
  • 相关阅读:
    AGC 044 A
    example
    python3遇到的问题
    构建开发环境
    pandas处理数据
    pandas.DataFrame对象解析
    pandas再次学习
    监督式学习
    机器学习的基础概念
    赖世雄老师的音标课,旋元佑老师的语法书
  • 原文地址:https://www.cnblogs.com/xiaobaidashu/p/11718395.html
Copyright © 2020-2023  润新知