leetcode题解77-子集
问题描述
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
示例:
输入:
nums = [1,2,3]
输出:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
注:输出顺序不做要求
解题思路:
本题与排列组合问题相似,也是用回溯法,依次尝试每种可能。但是本题与前面的题目不同的是,本题所选中的元素的个数有很多种可能。我们可以将问题转换为对待每个元素,我们有两种可能,选和不选,对这两种情况依次进行尝试,这样就简便了很多。具体代码如下
代码实现
public List<List<Integer>> lists; //保存最终结果的集合public int n; //数组的长度public int digits[]; //保存每次尝试的临时结果的数组//k表示当前对第几个数进行尝试,m表示当前选中了几个数public void dfs(int nums[],int k,int m){//如果对数组中的所有元素都进行了尝试,那么就可以把尝试的结果添加到我们最终的集合中if(k>=n){List<Integer> list=new ArrayList<>();//如果这一次一个都没选中,就直接把空的集合添加到最终结果中if(m==0){lists.add(list);return ;}for(int i=0;i<m;i++){list.add(digits[i]);}lists.add(list);return ;}else{//只需尝试两种可能,i=0表示未选中,i=1表示选中for(int i=0;i<2;i++){//如果选中了,就需要把这个值放入到digits数组中,并且让选中的个数m加1if(i==1){digits[m]=nums[k];m++;}dfs(nums,k+1,m);}}}public List<List<Integer>> subsets(int[] nums) {n=nums.length;lists=new ArrayList<>();digits=new int[n];dfs(nums,0,0);return lists;}
leetcode题解77-子集相关推荐
- Leetcode(77)——组合
Leetcode(77)--组合 题目 给定两个整数 n 和 k,返回范围 [ 1 , n ] [1, n] [1,n] 中所有可能的 k 个数的组合. 你可以按 任何顺序 返回答案. 示例 1: 输 ...
- 900 多道 LeetCode 题解,这个 GitHub 项目值得 Star!
转自 | 码农有道 大家好,我是小 G. 周末风和日丽,适合刷 LeetCode 今天给你们推荐个 GitHub 项目,里面收集了 900 多道 LeetCode 题解,并包含中英文两个版本,适合大多 ...
- PHP版Leetcode题解开始随缘更新
2019独角兽企业重金招聘Python工程师标准>>> PHP版Leetcode题解 我叫skys215,是一名bug工程师. 我接触编程的时间比较早,但是因为我数学不好加上比较懒, ...
- [LeetCode 题解]: Binary Tree Preorder Traversal
前言 [LeetCode 题解]系列传送门: http://www.cnblogs.com/double-win/category/573499.html 1.题目描述 Given a binary ...
- LeetCode 题解汇总
为什么80%的码农都做不了架构师?>>> LeetCode 题解汇总 转载于:https://my.oschina.net/michao/blog/801863
- leetcode题解【持续更新】
leetcode题解不断更新,以及nowcoder题解.一起加油! 完整请移步我的Github 转载于:https://juejin.im/post/5c8a73d8f265da2de80fa774
- 32位有符号整数_008. 字符串转换整数 (atoi) | Leetcode题解
点击上方"蓝色字体",选择"设为星标" 每天复习一道面试题,轻松拿大厂Offer~ 题目描述: 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先 ...
- leetcode题解132-分割回文串 II
问题描述 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文. 返回符合要求的 最少分割次数 . 示例 1: 输入:s = "aab" 输出:1 解释:只需一次分割 ...
- leetcode题解131-分割回文串
问题描述 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 .返回 s 所有可能的分割方案. 回文串 是正着读和反着读都一样的字符串. 示例 1: 输入:s = "aa ...
- [LeetCode 题解]: Roman to Interger
前言 [LeetCode 题解]系列传送门: http://www.cnblogs.com/double-win/category/573499.html 1.题目描述 Given a roman ...
最新文章
- 关于命令行窗口输入pip list出错的一些解决办法
- 记一次TIME_WAIT网络故障
- 网络营销外包期间如何提升网络营销外包外链优化效果?
- Windows Vista Ultimate 版测试结果汇整
- 图像处理:边缘提取算法(边缘提取算子总结)——Matlab代码实现
- Python面试题40问
- 2021牛客暑期多校训练营8,签到题ADEK
- 在 Windows 上进行 Laravel Homestead 安装、配置及测试
- ISP (互联网服务提供商)
- 电脑系统里如何设置dns服务器
- 呵护流量尖峰时刻,我们是互联网的“守夜人”
- [iOS]日历和提醒编程指南(Calendar and Reminders Programming Guide)
- 使用微擎后台授权须知
- 9 与python2交互
- Sniffer报文放送
- 打破思维断层之KMP分析
- RK3399 Android7.1使用网络连接ADB
- Retrofit 2.0 轻松实现多文件/图片上传/Json字符串/表单
- mysql分数占百分比查询
- 中国独角兽上市潮,爱奇艺优信小米值得投资吗? | 一点财经
热门文章
- 又一国产手机宣布“退出群聊” 小米接盘:曾令万千女性着迷!
- OPPO F11 Pro渲染图曝光:升降式前置摄像头设计
- 小米8青春版超级夜景安排上了 这个样张我是服气的!
- linux var run目录,PXE系列文章(16) - Linux /run 和 /var/run 目录介绍
- linux openssh升级7.4,RHEL Centos上升级OpenSSH7.4p1
- 匹配特殊字符的正则表达式
- docker-compose 配置kafka_Docker Compose 引用环境变量
- 【java】如何在IDEA 中查看 Class文件的汇编
- 【SQL】血缘解析 SQL parser 工具介绍
- Elasticsearch】es memory locking requested for process but memory is not locked