当前位置: 首页 > news >正文

leetcode78.子集

给你一个整数数组 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 中的所有元素 互不相同

思路:这道题狠很重要,后面很多都和这道题类似*****

子集问题特别的一点是不在递归终止条件处收集结果
注意点1:为了防止结果重复,每次扩选的数字必须是在本次数字之后的,用index来控制
注意点2:ret加入到list,再修改ret也会导致list中元素改变,因此要添加深拷贝ret到list
List<List<Integer>> list=new ArrayList<>();List<Integer> ret=new ArrayList<>();public List<List<Integer>> subsets(int[] nums) {list.add(new ArrayList<>(ret));backTracking(nums,0);return list;}void backTracking(int[]nums,int index){for(int i=index;i<nums.length;i++){ret.add(nums[i]);list.add(new ArrayList<>(ret));backTracking(nums,i+1);ret.remove(ret.size() - 1);}return;}


http://www.mrgr.cn/news/83145.html

相关文章:

  • Windows Docker笔记-Docker拉取镜像
  • MySQL第四次实验
  • SpringBoot注入配置文件application.properties中的信息
  • Vue2+OpenLayers实现折线绘制功能(提供Gitee源码)
  • H3CNE-12-静态路由(一)
  • linux下的线程
  • (四)ROS通信编程——服务通信
  • Mapper XML 文件纳入 classpath 的解决方案
  • 微信小程序实现登录注册
  • C# 元组
  • 聚类系列 (二)——HDBSCAN算法详解
  • Vue3(一)
  • docker+ffmpeg+nginx+rtmp 拉取摄像机视频
  • vs2022开发.net窗体应用开发环境安装配置以及程序发布详细教程
  • 创建基本的 Electron 应用项目的详细步骤
  • spark汇总
  • 【W800】UART 的使用与问题
  • 电脑硬盘系统迁移及问题处理
  • C# 特性
  • Qt 5.14.2 学习记录 —— 팔 QWidget 常用控件(3)
  • 个人博客搭建(二)—Typora+PicGo+OSS
  • 学习记录:C++基类构造函数的调用:理解和实践
  • selenium+pyqt5自动化工具总结
  • 夯实前端基础之HTML篇
  • 算法 -归并排序
  • 华为OD E卷(100分)50-预订酒店