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);}
};

注意:

  1. 首先是结果的选择,需要放在判断if里,如果到了树的最底层,就把结果放在rusult里
  2. 一开始并不需要把空的item放到result里,因为最右端就是一条空的值。

LeetCode 78 子集 中等难度相关推荐

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

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

  2. 回溯模板+leetcode——78. 子集 + 90. 子集 II

    回溯法 一般情况下,看到题目要求「所有可能的结果」,而不是「结果的个数」,我们就知道需要暴力搜索所有的可行解了,可以用「回溯法」. 「回溯法」实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻 ...

  3. leetcode:78. 子集

    78. 子集 来源:力扣(LeetCode) 链接: https://leetcode.cn/problems/subsets/ 给你一个整数数组 nums ,数组中的元素 互不相同 .返回该数组所有 ...

  4. LeetCode 78. 子集【数组,回溯算法】

    78. 子集 给你一个整数数组 nums ,数组中的元素 互不相同 .返回该数组所有可能的子集(幂集). 解集 不能 包含重复的子集.你可以按 任意顺序 返回解集. 示例 1: 输入:nums = [ ...

  5. LeetCode 78. 子集

    给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [[3],[1],[2],[1,2, ...

  6. LeetCode 78. 子集(回溯)

    文章目录 1. 题目信息 2. 解题 2.1 暴力回溯 2.2 循环 2.3 位运算 1. 题目信息 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重 ...

  7. leetcode(78)子集

    子集 解题思路:递归+红色区域的写法很重要,在这里要千万注意 class Solution {public List<List<Integer>> subsets(int[] ...

  8. leetcode 78. 子集 思考分析

    题目 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 思考分析 画出解空间树. 我们可以发现我们所需要的结果是解空间的所有结点.而我们之前 ...

  9. leetcode 78.子集 dfs解法

    给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [[3],[1],[2],[1,2, ...

最新文章

  1. 据说这是大多数人【减肥】的真实写照
  2. 你应该避免的8种常见SQL错误用法!
  3. java rxtx 64_java – RXTX无法在Windows 7 64位下列出或查找端口
  4. iOS SDWebImage 缓存机制与缓存策略
  5. 平面坐标(方里网)转换为经纬度坐标
  6. 杂谈---如果你是面试官,你希望你未来的同事具有哪些能力呢?
  7. 【渝粤题库】广东开放大学 管理会计 形成性考核
  8. Docker 镜像-管理-导入-导出
  9. Java注解之自定义注解
  10. 配置xml文件来实现FlightGear通信,接收与发送数据
  11. Android开发:ZXing条码扫描-竖屏解决方案
  12. KEIL 生成 Bin\axf 文件
  13. mongodb 两小时入门
  14. mysql:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)解决方法
  15. 怎样取消隐式推送_iPhone XS ios12系统隐式推送开启后怎么关闭
  16. python破解网易反爬虫机制
  17. 十个著名思维实验的思考
  18. 《会计信息系统》课程期末复习题与参考答案
  19. 阿里专家直击前端盛会JSConf2017_Day2:见证Moment.js精彩分享
  20. Java计算机毕业设计舒旅程旅游景点预订网站源码+系统+数据库+lw文档

热门文章

  1. angular 路由页面不刷新
  2. 经典机器学习算法系列3-k近邻算法
  3. perl 分析mysql binlog
  4. 成都Uber优步司机奖励政策(4月8日)
  5. git :设置 object-c 的忽略文件
  6. 送给同事的5个新年计划
  7. 推荐五星级C语言学习网站
  8. OpenAI披露最新研究成果:AI训练如何扩展到更大规模?
  9. CodeForces 157C Message
  10. 【Linux】 任务调度/计划 cron