这篇page是针对leetcode上的78.子集所写的。小尼先简单的说明一下这道题的意思,就是给出一个整数数组nums,数组中的元素互不相同,需要返回该数组所有可能的子集。要求是子集不能包含重复的子集。

小尼在这里先给出简单的解题思路,其实思路还是比较简单的,我们其实首先需要理解的就是一个集合的子集的概念,其实这个概念也是比较简单的,我们在这里进行的方法无非也就是进行一个递归遍历,但是这里呢我们需要注意的一个点呢就是空集也是属于子集的一个,所以在等会给出的代码中,应该首先放入的就是空集,然后我们的我们再做一个判断和一个递归就可以了,小尼接下来给出完整的代码:

class Solution {List <List<Integer>> result = new ArrayList<>();LinkedList<Integer> path = new LinkedList<>();public List<List<Integer>> subsets(int[] nums) {subsetsHelper(nums,0);return result;}public void subsetsHelper(int[] nums, int startIndex){result.add(new ArrayList<>(path));if(startIndex >= nums.length){return ;}for(int i = startIndex;i<nums.length;i++){path.add(nums[i]);subsetsHelper(nums,i+1);path.removeLast();}}
}

其实就是上面的result.add(new ArrayList<>(path));这一句话在第一次进入递归的时候就将空集合放入了,然后我们在之后不断递归的过程中,我们的集合的数量达到num.length的时候我们的递归就结束,其他的操作其实还是比较简单的也就是不断的加入然后删除就可以了。希望小伙伴们可以得到帮助

My Fifty-fifth Page - 子集 - By Nicolas相关推荐

  1. My Hundredth Page - 回文子串 - By Nicolas

    这篇page是针对leetcode上的647.回文子串所写的.小尼先简单的说明一下这道题的意思,就是给定一个字符串s,需要统计出这个字符串中回文子串的数目,回文子串的定义就是正着读和倒过来读是一样的字 ...

  2. My Seventh Page - 设计链表 - By Nicolas

    这一篇page对应的是leetcode上面707.设计链表这个题目,首先这个题目的描述还是比较简单的,就是我们可以选择使用单链表或者双链表实现链表对应的增删改查的许多功能.小尼这个题目大部分都是看的题 ...

  3. My Eighty-sixth Page - 买股票的最佳时机Ⅲ - By Nicolas

    这篇page是针对leetcode上的123.买股票的最佳时机Ⅲ所写的.小尼先简单的说明一下这道题的意思,就是我们给定一个数组,它的第i个元素表示的是一支股票在第i天的价格,我们需要设计一个算法表示我 ...

  4. My Eighty-seventh Page - 买卖股票的最佳时机 - By Nicolas

    这篇page是针对leetcode上的188.买卖股票的最佳时机Ⅳ所写的.小尼先简单的说明一下这道题的意思,就是我们给定一个整数数组prices,它的第i个元素prices[i]是一支给的股票在第i天 ...

  5. My Fourteenth Page - 两个数组的交集 - By Nicolas

    今天的这篇page针对的时leetcode上的349.两个数组的交集写的,小尼首先简单说明一下这道题的要求,给点两个数组nums1和nums2.,返回他们的交集,输出结果中的每个元素一定是唯一的. 首 ...

  6. My Twenty-Fourth - Page - 逆波兰表达式求值 - By Nicolas

    这篇page是针对leetcode上的150.逆波兰表达式这道题所写的,小尼先简单说明一下这道题的意思,这道题先是介绍了有效的运算符包括"+","-",&quo ...

  7. My Twenty-Eighth Page - 滑动窗口最大值 - By Nicolas

    这篇page是针对leetcode上的239.滑动窗口的最大值所写的.小尼先简单的说明一下这道题的题意,给出一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧,需要返回滑动 ...

  8. My Twentieth Page - 用栈实现队列 - By Nicolas

    这篇page是针对leetcode上的232.用栈实现队列这道题所写的,小尼先简单的说明一下这道题,就是利用两个栈实现先入先出队列.队列应当支持一般队列支持的所有操作(push.pop.peek.em ...

  9. My Ninetieth Page - 最长递增子序列 - By Nicolas

    这篇page是针对leetcode上的300.最长递增子序列所写的.小尼先简单的说明一下这道题的意思,给定一个整数数组nums,我们需要找到其中最长严格递增子序列的长度.其中子序列是由数组派生而来的序 ...

  10. My Eighty-ninth Page - 买卖股票的最佳时机含手续费 - By Nicolas

    这篇page是针对leetcode上的714.买卖股票的最佳时机含手续费所写的.小尼先简单的说明一下这道题的意思,就是给定一个整数数组prices,其中prices[i]表示第i天的股票价格,整数fe ...

最新文章

  1. js折线图设置y轴刻度_手绘风格的 JS 图表库:Chart.xkcd
  2. 拔最多的鹅毛,听最少的鹅叫
  3. 大数据druid查询不支持分页_Druid实时大数据分析查询(六)
  4. java 集成grizzly_java – 与Jersey和Spring集成Grizzly2.2.X
  5. excel 进行二叉树_Excel下拉菜单,那些你不知道的操作
  6. [android] 百度地图开发 (二).定位城市位置和城市POI搜索
  7. scrum–yesterday once more
  8. 我不是天生的飞鸽传书2011
  9. jquery 读取页面load get post ajax 四种方式代码写法
  10. 使用TiledMap做的圈地游戏
  11. J-link J-flash 工程配置及下载
  12. java安全相关类 (java.security包)
  13. js复制操作,复制成功弹出提示框
  14. python考勤系统_使用Djang的考勤系统
  15. 冯乐乐之二 shader的数学
  16. 住宅IP和机房IP有什么区别,爬虫用哪种好?
  17. 怎么查二手苹果手机价格
  18. 新能源汽车,车架号VIN码查询接口
  19. 数据库复习 BCNF分解算法
  20. 区块链主流开源技术体系介绍(转)

热门文章

  1. QQ游戏-大家来找茬 外挂
  2. Vue.js 踩坑记 (一)
  3. 如何去掉vi下面显示的[converted]标志
  4. 码云 zheng 项目部署过程记录 eclispe部署过程
  5. 报表工具(报表设计器)使用的开发历程
  6. U盘如何使用量产工具格式化
  7. C语言刷题训练营-第一讲
  8. 手机点餐系统概述_基于Android无线点餐系统的设计与实现
  9. eWebEditor授权序列号
  10. html版本绩拼音怎么写,绩这个字怎么读、绩怎么念、绩怎么拼音、绩怎么组词...