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

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.lryc.cn/news/2404415.html

相关文章:

  • 关于单片机的基础知识(一)
  • Python训练营打卡Day45
  • Xilinx FPGA 重构Multiboot ICAPE2和ICAPE3使用
  • Redis专题-基础篇
  • springMVC-11 中文乱码处理
  • 【iOS安全】iPhone X iOS 16.7.11 (20H360) WinRa1n 越狱教程
  • MongoDB检查慢查询db.system.profile.find 分析各参数的作用
  • 智能标志桩图像监测装置如何守护地下电缆安全
  • 【网站建设】网站 SEO 中 meta 信息修改全攻略 ✅
  • 计算机视觉处理----OpenCV(从摄像头采集视频、视频处理与视频录制)
  • elasticsearch基本操作笔记
  • LVGL手势识别事件无上报问题处理记录
  • 《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- 第一篇:MIPI CSI-2基础入门
  • 变幻莫测:CoreData 中 Transformable 类型面面俱到(一)
  • 开源技术驱动下的上市公司财务主数据管理实践
  • 婚恋小程序直播系统框架搭建
  • day46 python预训练模型补充
  • CCPC chongqing 2025 H
  • Java建造者模式(Builder Pattern)详解与实践
  • ant-design4.xx实现数字输入框; 某些输入法数字需要连续输入两次才显示
  • 使用ORM Bee (ormbee) ,如何利用SQLAlchemy的模型生成数据库表.
  • 【win | 自动更新关闭】win11
  • win32相关(IAT HOOK)
  • 大模型高效提示词Prompt编写指南
  • 零基础玩转物联网-串口转以太网模块如何快速实现与TCP服务器通信
  • 十一、【ESP32开发全栈指南: TCP通信服务端】
  • ESP32开发之LED闪烁和呼吸的实现
  • 【产品业务设计】支付业务设计规范细节记录,含订单记录、支付业务记录、支付流水记录、退款业务记录
  • 2025软件供应链安全最佳实践︱证券DevSecOps下供应链与开源治理实践
  • Linux安装jdk、tomcat