当前位置: 首页 > ops >正文

leetcode刷题日记——1.组合总和

在这里插入图片描述
解答:

class Solution {
public:void dfs(vector<int>& candidates, int target, vector<vector<int>>& ans, vector<int>& combine, int idx) {if(idx==candidates.size()){//遍历完的边界return;}if(target==0){//找完了能组成和的所有数,也是边界ans.emplace_back(combine);//把单条结果放进去return;}dfs(candidates,target,ans,combine,idx+1);//如果我们不用当前idx数,要考虑下一个idx+1//如果要用当前idx数if(target-candidates[idx]>=0){//首先我们要确定还有空间可以用(数字全正啊,题目有说)combine.emplace_back(candidates[idx]);//还有空间,放进单条答案里dfs(candidates,target-candidates[idx],ans,combine,idx);//但是我们可以无限制的取当前数,所以可以继续考虑idxcombine.pop_back();//回溯的时候还原现场}}vector<vector<int>> combinationSum(vector<int>& candidates, int target) {vector<vector<int>> ans;//存答案用的vector<int> combine;//放单条答案用的dfs(candidates,target,ans,combine,0);//从0位置开始return ans;}
};

时间复杂度:O(S),S为所有可行解的长度之和。
空间复杂度:O(target)。除了答案数组外,空间复杂度取决于递归的栈深度,在最差情况下需要递归O(target)层。

http://www.xdnf.cn/news/12631.html

相关文章:

  • 常用函数库之 - std::function
  • 从零设计一个智能英语翻译API:架构与实现详解
  • 打卡第47天
  • Day15
  • Java编程之适配器模式
  • 【题解】[UTPC2024] C.Card Deck
  • CF2056 D. Unique Median(2200)
  • 快速部署和启动Vue3项目
  • Pytorch学习——自动求导与计算图
  • 在Ubuntu22.04 系统中安装Docker详细教程
  • 大话软工笔记—需求分解
  • 大数据(2) 大数据处理架构Hadoop
  • 原型链与继承
  • 实习学习项目
  • 十(1). 强制类型转换
  • 汇编语言学习(三)——DoxBox中debug的使用
  • Android启动时长优化(kernel部分)
  • 硬件电路设计-开关电源设计
  • PLC有脉冲输出,但伺服电机无法旋转
  • Linux安装jdk、tomcat
  • gopool 源码分析
  • 今天对C语言中static和extern关键字的作用认识又深刻了
  • Mysql 插入中文乱码
  • 牛客练习赛140
  • 广东餐饮服务中高级证备考指南:高效学习与应试技巧
  • H_Prj06_02 8088单板机串口读取内存块
  • 瀑布流布局
  • Vue2 模板中使用可选链操作符(?.)的坑
  • gRPC 的四种通信模式完整示例
  • 自动驾驶---SD图导航的规划策略