LeetCode 78 子集 中等难度
78 子集
题目:
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
示例:输入: nums = [1,2,3]
输出:
[[1],[2],[3],[1,2,3],[1,3],[2,3],[1,2],[]
]
解题思路:
大概的思路就是每个数字只有两个选择,要么选择,要么不选择。就是回溯算法(深度优先搜索)。想象一棵树。
1.先写出深度优先算法函数;
函数定义:利用引用把值传回主函数;
2.主函数调用
3.在树的最底层把遍历结果放在result里
代码:
class Solution {public:vector<vector<int>> subsets(vector<int>& nums) {vector<int> item; //每个节点产生的新值vector<vector<int>> result; //总结果存储int n=nums.size();generate(n,nums,item,result);//n代表深度return result;}
private:void generate(int i,vector<int>& nums,vector<int>& item,vector<vector<int>> &result) {if(i==0) {result.push_back(item); //到树的最深处后把选择的结果放在总结果里return; // 如果超过N层,则说明结束}int n=nums.size(); item.push_back(nums[n-i]); //选择nums,进一步 树的左支generate(i-1,nums,item,result);item.pop_back(); //退一步generate(i-1,nums,item,result);}
};
注意:
- 首先是结果的选择,需要放在判断if里,如果到了树的最底层,就把结果放在rusult里
- 一开始并不需要把空的item放到result里,因为最右端就是一条空的值。
LeetCode 78 子集 中等难度相关推荐
- [位运算|状态压缩] leetcode 78 子集
[位运算|状态压缩]leetcode 78 子集 1.题目 题目链接 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明: 解集不能包含重复的子集. 示例: 输入: n ...
- 回溯模板+leetcode——78. 子集 + 90. 子集 II
回溯法 一般情况下,看到题目要求「所有可能的结果」,而不是「结果的个数」,我们就知道需要暴力搜索所有的可行解了,可以用「回溯法」. 「回溯法」实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻 ...
- leetcode:78. 子集
78. 子集 来源:力扣(LeetCode) 链接: https://leetcode.cn/problems/subsets/ 给你一个整数数组 nums ,数组中的元素 互不相同 .返回该数组所有 ...
- LeetCode 78. 子集【数组,回溯算法】
78. 子集 给你一个整数数组 nums ,数组中的元素 互不相同 .返回该数组所有可能的子集(幂集). 解集 不能 包含重复的子集.你可以按 任意顺序 返回解集. 示例 1: 输入:nums = [ ...
- LeetCode 78. 子集
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [[3],[1],[2],[1,2, ...
- LeetCode 78. 子集(回溯)
文章目录 1. 题目信息 2. 解题 2.1 暴力回溯 2.2 循环 2.3 位运算 1. 题目信息 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重 ...
- leetcode(78)子集
子集 解题思路:递归+红色区域的写法很重要,在这里要千万注意 class Solution {public List<List<Integer>> subsets(int[] ...
- leetcode 78. 子集 思考分析
题目 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 思考分析 画出解空间树. 我们可以发现我们所需要的结果是解空间的所有结点.而我们之前 ...
- leetcode 78.子集 dfs解法
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [[3],[1],[2],[1,2, ...
最新文章
- 据说这是大多数人【减肥】的真实写照
- 你应该避免的8种常见SQL错误用法!
- java rxtx 64_java – RXTX无法在Windows 7 64位下列出或查找端口
- iOS SDWebImage 缓存机制与缓存策略
- 平面坐标(方里网)转换为经纬度坐标
- 杂谈---如果你是面试官,你希望你未来的同事具有哪些能力呢?
- 【渝粤题库】广东开放大学 管理会计 形成性考核
- Docker 镜像-管理-导入-导出
- Java注解之自定义注解
- 配置xml文件来实现FlightGear通信,接收与发送数据
- Android开发:ZXing条码扫描-竖屏解决方案
- KEIL 生成 Bin\axf 文件
- mongodb 两小时入门
- mysql:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)解决方法
- 怎样取消隐式推送_iPhone XS ios12系统隐式推送开启后怎么关闭
- python破解网易反爬虫机制
- 十个著名思维实验的思考
- 《会计信息系统》课程期末复习题与参考答案
- 阿里专家直击前端盛会JSConf2017_Day2:见证Moment.js精彩分享
- Java计算机毕业设计舒旅程旅游景点预订网站源码+系统+数据库+lw文档