力扣78 子集 java实现

78.子集

给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。

解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。

示例 1:

复制代码
输入:nums = [1,2,3]
输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]

示例 2:

复制代码
输入:nums = [0]
输出:[[],[0]]

提示:

  • 1 <= nums.length <= 10
  • -10 <= nums[i] <= 10
  • nums 中的所有元素 互不相同

递归遍历的时候,把所有节点都记录下来,就是要求的子集集合。

java 复制代码
    public static void main(String[] args) {  // 测试用
       int[] nums = {1,2,3};
       List<List<Integer>> res = subsets(nums);
        for (List<Integer> list : res) {
            System.out.println(list);
        }
    }

    public static  List<List<Integer>> subsets(int[] nums) {
        List<List<Integer>> res = new ArrayList<>();
        res.add(new ArrayList<>());
        helper(nums, 0, res, new ArrayList<>());

        return res;
    }

    public static void helper(int[] nums, int cur, List<List<Integer>> res, List<Integer> temp){
        if (cur >= nums.length){
            return;
        }
        for (int i = cur; i < nums.length; i++) {
            temp.add(nums[i]);
            res.add(new ArrayList<>(temp));
            helper(nums, i + 1, res, temp);
            temp.remove(temp.size() - 1);
        }
    }

以上为记录分享用,代码较差请见谅

相关推荐
苏生Susheng12 分钟前
【软件实施】Linux企业运维常用命令手册
java·linux·运维·服务器·springboot·springcloud·软件实施
想要成为老金高手13 分钟前
Kubernetes 调度器详解:从 nodeName 到污点容忍
java·容器·kubernetes
吴长建先生重名了16 分钟前
ElasticSearch 检索系统性能优化实战:基准测试
java
西索斯coding24 分钟前
doubao-seed-2.1-turbo 调用一直 401 怎么办?pro 版同样的 Key 却正常——5 分钟排查定位指南
java·服务器·数据库·ai
旧梦952731 分钟前
Java SortedMap 接口详解:从入门到实战
java·开发语言
莫陌尛.35 分钟前
Java_this构造方法
java·开发语言
2601_962297251 小时前
C# vs Java vs Python:YOLO工业部署性能对比实战
java·python·c·工业视觉·性能对比
计算机毕设定制辅导-无忧学长1 小时前
《基于SpringBoot的马术俱乐部管理系统》
java·spring boot·后端
Dreams°1231 小时前
【Java后端+Vue前后端分离:内网正常、公网访问异常|5个高频经典踩坑完整复盘】
java·开发语言·vue.js
Omics Pro1 小时前
Arc研究所Cell|全新虚拟细胞官方基准评测框架
大数据·人工智能·深度学习·算法·机器学习