子集

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

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);}}
}

转载于:https://www.cnblogs.com/erdanyang/p/11273681.html

leetcode(78)子集相关推荐

  1. [位运算|状态压缩] leetcode 78 子集

    [位运算|状态压缩]leetcode 78 子集 1.题目 题目链接 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明: 解集不能包含重复的子集. 示例: 输入: n ...

  2. leetcode:78. 子集

    78. 子集 来源:力扣(LeetCode) 链接: https://leetcode.cn/problems/subsets/ 给你一个整数数组 nums ,数组中的元素 互不相同 .返回该数组所有 ...

  3. LeetCode 78 子集 中等难度

    78 子集 题目: 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例:输入: nums = [1,2,3] 输出: [[1],[2], ...

  4. 回溯模板+leetcode——78. 子集 + 90. 子集 II

    回溯法 一般情况下,看到题目要求「所有可能的结果」,而不是「结果的个数」,我们就知道需要暴力搜索所有的可行解了,可以用「回溯法」. 「回溯法」实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻 ...

  5. LeetCode 78. 子集【数组,回溯算法】

    78. 子集 给你一个整数数组 nums ,数组中的元素 互不相同 .返回该数组所有可能的子集(幂集). 解集 不能 包含重复的子集.你可以按 任意顺序 返回解集. 示例 1: 输入:nums = [ ...

  6. LeetCode 78. 子集

    给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [[3],[1],[2],[1,2, ...

  7. LeetCode 78. 子集(回溯)

    文章目录 1. 题目信息 2. 解题 2.1 暴力回溯 2.2 循环 2.3 位运算 1. 题目信息 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重 ...

  8. leetcode 78. 子集 思考分析

    题目 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 思考分析 画出解空间树. 我们可以发现我们所需要的结果是解空间的所有结点.而我们之前 ...

  9. leetcode 78.子集 dfs解法

    给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [[3],[1],[2],[1,2, ...

最新文章

  1. java helloworld代码_java学习应用篇|逃不掉的HelloWorld
  2. 机器学习-梯度下降算法原理及公式推导
  3. 线上问题分析系列:数据库连接池内存泄漏问题的分析和解决方案
  4. Winform中使用printDocument控件打印pictureBox中的二维码照片
  5. patent sub categories
  6. python爬虫实战教程分享 或许你可以看一下这篇文章
  7. linux下apache+openssl配置记录
  8. Java中的StringBuffer、StringBuilder和包装器类型
  9. ora-30926:无法在源表中获得一组稳定的行
  10. 史上最全的phpstorm常用配置
  11. 软件配置---重装系统---品牌电脑重启快捷键表
  12. 纯js封装一个多功能弹出框
  13. Grafana接入Elasticsearch数据,绘制dashboard
  14. 比炒币还香的在线作图工具draw.io
  15. 30个 开发商logo - 商标制作 - ci vi设计
  16. vue4+Cesium1.81.0安装及配置
  17. 一位华尔街金融大鳄的选股模型
  18. C语言中size_t类型详细说明【转载】
  19. Verilog HDL语言入门(二)
  20. addEventListener的常用事件

热门文章

  1. Golang入门教程(十七)Linux/Windows下快速搭建和配置NSQ
  2. Maven命令行使用:mvn clean install(安装)
  3. 二维数组的传参数的方法
  4. hdu 1022 Train Problem I(栈)
  5. Karrigell介绍
  6. 共享一个对Reflector 反编译支持中文的修正FileGenerator文件
  7. 一个简单粗暴的爬虫 - 必应今日美图
  8. oracle11g exp导出问题:部分表导不出来
  9. Kattis之旅——Prime Reduction
  10. [备忘]silverlight中关于“复制到输出目录”和“生成操作”