leetcode 78子集
2024-10-06 22:00:55
采用回溯法:对于例子图解执行过程如下,其中向上的分支为向下递归,向下的分支为第二次递归,因此已经push了对应的下标的值,则从根到右边连起来的路径即为组合
由于整个过程类似于二叉树的中序遍历,因此代码形式也类似于中序遍历的递归代码,i也可以代表当前所在的层数,当到达第3层时输出结果;
/**
记录数组下标i,储存结果e,最终结果res
递归边界,数组下标到达终点len(即i==len)
**/
class Solution {
public:
vector<vector<int>> subsets(vector<int>& nums) {
int len=nums.size();
if(len==) return {};
vector<vector<int>> res;
vector<int>e;
dfs(,nums,res,e);
return res;
}
void dfs(int i,vector<int>&nums,vector<vector<int>>&res,vector<int>e){
if(i>=nums.size()){
res.push_back(e);return;
}
dfs(i+,nums,res,e);
e.push_back(nums[i]);
dfs(i+,nums,res,e);
}
};
最新文章
- 浅谈sql中的in与not in,exists与not exists的区别
- Code First 数据注释--DatabaseGenerated
- 在 Windows Azure 网站 (WAWS) 上对 Orchard CMS 使用 Azure 缓存
- iOS 按钮连续提交执行一次(如留言提交,多次拍照问题)
- phpwind9.0升级到php7后出现的问题修复
- Day04.a(对象类型的转换,多态)
- 2018(2017)美图java服务端笔试(回忆录)
- poj2393 Yogurt factory(贪心,思考)
- windows启动项管理
- mongodb之oplog
- js九九乘法表的应用
- java布局学习(新)
- 【整体二分】【P3527】 [POI2011]MET-Meteors
- Linux上Nginx部署配置--二级域名配置
- C语言 关键字
- 荣誉墙项目day28 django常用函数
- 工作笔记-javascript-网络层封装
- CMake是用于生成make文件的跨平台编译文件
- java并发机制的底层实现原理
- js实现点击按钮滚动条缓慢滚动到顶部