leetcode 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 中的所有元素 互不相同

思路:

是这个过程,假设输入数组是{1,2,3}
我想要,1,12,123,13,2,23,3。我是这样思考的。也就是我每次进来数组的一个数都是累加,如果加到最后一个数,那么我就换上一个数。就像我加到123时,已经时最后一个数了,所以我把组合12,给换成了13,让3取代2的位置。

代码实现:

class Solution {// 这个链表用来存现在有几个数在排序List<Integer> t = new ArrayList<Integer>();// 结果链表List<List<Integer>> ans = new ArrayList<List<Integer>>();public List<List<Integer>> subsets(int[] nums) {// 调用方法,递归开始(入口) dfs(0, nums);return ans;}// 递归的方法public void dfs(int cur, int[] nums) {// 如果下标越界了,说明是遍历到最后一个,就保存if (cur == nums.length) {ans.add(new ArrayList<Integer>(t));return;}// 如果不是最后一个就加入排序列表t.add(nums[cur]);// 递归下一个元素dfs(cur + 1, nums);// 移除这一个t.remove(t.size() - 1);// 换下一个人上dfs(cur + 1, nums);}
}

leetcode 求子集相关推荐

  1. LeetCode 90子集Ⅱ91解码方法

    微信搜一搜:bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打卡群,欢迎 ...

  2. 组合算法/全排列算法/求子集算法

    本文介绍组合算法,组合算法有很多,这里只介绍其中一种的两种形式. 全排列:全排列算法 组合:本文 子集算法:求子集算法 组合 leetcode实战:组合 给定两个整数 n 和 k,返回范围 [1, n ...

  3. 全排列算法(无重复数字全排列/有重复数字全排列)/ 组合算法/ 求子集算法

    写在前面 全排列 1 无重复数字全排列 1.1 紫书版本 1.2 回溯法 2 有重复数字全排列 复盘易错点(可跳过) 写在前面 很久很久以前就想写的一篇博客,因为懒一直没开工,但是学习全排列算法算是我 ...

  4. 数字拆分问题算法回溯_回溯算法:求子集问题!

    给「代码随想录」一个星标吧! ❝ 认识本质之后,这就是一道模板题 通知:我将公众号文章和学习相关的资料整理到了Github :https://github.com/youngyangyang04/le ...

  5. 递归/回溯:Subsets II求子集(有重复元素)

    上一篇描述了针对数组中没有重复元素进行子集的求取过程递归/回溯:subsets求子集 但是当出现如下数组时: 例如: nums[] = [2, 1, 2, 2] 结果为: [[], [1], [1,2 ...

  6. leetcode 90. 子集 II 思考分析

    与本题相关联的题目解析: leetcode 78. 子集 思考分析 leetcode 40. 组合总和 II思考分析 题目 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集 ...

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

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

  8. 回溯---含有相同元素求子集

    含有相同元素求子集 90. Subsets II (Medium) For example, If nums = [1,2,2], a solution is:[[2],[1],[1,2,2],[2, ...

  9. 求子集PHP,JavaScript求非空子集数目的实现方法

    给定一个序列的元素,里面由数字或字符组成,可能有重复的值,如何求它的非空子集数目? 比如说有序列{1, 2, 3, 4},它的非空子集包括: {{1}, {2}, {3}, {4}, {1,2}, { ...

最新文章

  1. jsoncpp使用中的总结
  2. 各种排序算法及其java程序实现
  3. Intel Realsense 图像投影(Projection)翻译
  4. 怎样进入android模式,安卓手机如何进入Recovery模式的通用方式详解
  5. opencv python考勤_Python基于Opencv来快速实现人脸识别过程详解(完整版)
  6. 奇妙的曲线--希尔伯特曲线
  7. KDD2021 | 推荐系统中利用深度哈希方法学习类别特征表示
  8. Java反编译工具推荐 -- DJ Java Decompiler
  9. Git:常用的命令(不断迭代完善)
  10. 物理机安装linux系统,物理机安装linux的三种方法
  11. docker镜像打包
  12. 【大数据之路-阿里巴巴大数据实践】第一篇 数据技术篇
  13. C#身份证号码验证器(检验格式是否正确)
  14. Centos7 下载安装Redis
  15. K均值(K-Means)聚类算法简介
  16. oracle 10102,linux - linux中的Oracle数据库安装程序[INS-10102]安装程序初始化失败 - SO中文参考 - www.soinside.com...
  17. 《王亡於江上》之周昭王姬瑕
  18. 如何验证扇形面积公式?
  19. 论述:企业如何做好网络营销推广
  20. python国内外研究现状-对当今Python 快速发展的研究与展望

热门文章

  1. 2022施工员-土建方向-岗位技能(施工员)操作证考试题库及答案
  2. eCharts下载按钮
  3. css 文本两行显示,超出省略号表示
  4. 华为mate50os鸿蒙,华为mate50最新曝光!鸿蒙OS或“孤军奋战”,整体有颜有料
  5. 学学 linux 系统监控工具1
  6. windows平台上的ffmpeg安装
  7. 多模态特征融合方法总结
  8. 笔记-pdf.js 不展示签章
  9. 美团五年来首次职级大调整,推行扁平化管理
  10. 计算机网络|时延、发送时延(传输时延)、传播时延、处理时延、排队时延、时延带宽积