zoukankan      html  css  js  c++  java
  • leetcode(78)子集

    子集

    解题思路:递归+红色区域的写法很重要,在这里要千万注意

    class Solution {
        public List<List<Integer>> subsets(int[] nums) {
            List<Integer[]> result = new ArrayList<Integer[]>();
            List<List<Integer>> resultList = new ArrayList<List<Integer>>();
            int len = nums.length;
            subsets2(result,nums,len);
            for(Integer[] i : result){
                resultList.add(Arrays.asList(i));
            }
            return resultList;
        }
        public void subsets2(List<Integer[]> result, int[] nums, int len) {
            if(len==0){
                Integer[] ele = new Integer[len];
                result.add(ele);
                return;
            }
            subsets2(result, nums, len - 1);
            Integer[] ele = null;
            Integer[] temp = null;
            int size = result.size();
            for(int i=0;i<size;++i){
                temp = result.get(i);
                ele = new Integer[temp.length+1];
                System.arraycopy(temp,0,ele,0,temp.length);
                ele[temp.length] = nums[len-1];
                result.add(ele);
            }
        }
    }

     第二种方法:用List不用数组

    class Solution {
        public List<List<Integer>> subsets(int[] nums) {
            List<List<Integer>> result = new ArrayList<List<Integer>>();
            int len = nums.length;
            subsets2(result,nums,len);
            return result;
        }
        public void subsets2(List<List<Integer>> result, int[] nums, int len) {
            if(len==0){
                List<Integer> ele = new ArrayList<Integer>();
                result.add(ele);
                return;
            }
            subsets2(result, nums, len - 1);
            List<Integer> ele = null;
            List<Integer> temp = null;
            int size = result.size();
            for(int i=0;i<size;++i){
                temp = result.get(i);
                ele = new ArrayList<Integer>(temp);
                ele.add(nums[len-1]);
                result.add(ele);
            }
        }
    }
  • 相关阅读:
    VMware安装centos7
    Docker Compose 启动mysql,redis,rabbitmq
    mysql升级到5.7
    Docker Compose搭建ELK
    Spring Boot源码(八):Spring AOP源码
    Spring AOP-基于@AspectJ风格
    JDK动态代理
    Spring Boot源码(七):循环依赖
    Spring Boot源码(六):Bean的创建详解
    Spring Boot源码(五):BeanFactoryPostProcessor和BeanPostProcessor
  • 原文地址:https://www.cnblogs.com/erdanyang/p/11273681.html
Copyright © 2011-2022 走看看