一:题目:

给定一个无重复元素的正整数数组 candidates 和一个正整数 target ,找出 candidates 中所有可以使数字和为目标数 target 的唯一组合。

candidates 中的数字可以无限制重复被选取。如果至少一个所选数字数量不同,则两种组合是唯一的。

对于给定的输入,保证和为 target 的唯一组合数少于 150 个。

示例 1:输入: candidates = [2,3,6,7], target = 7
输出: [[7],[2,2,3]]
示例 2:输入: candidates = [2,3,5], target = 8
输出: [[2,2,2,2],[2,3,3],[3,5]]
示例 3:输入: candidates = [2], target = 1
输出: []
示例 4:输入: candidates = [1], target = 1
输出: [[1]]
示例 5:输入: candidates = [1], target = 2
输出: [[1,1]]

二:思路

思路:
<1>:递归函数的递归参数为
backtacking(vector &v,int target);
<2>:递归的结果
vector<vector> ans;//装入所有的可行解
vector path;每次递归将一个值装入容器中
<3>:递归终止条件
accumulate(path.begin(),path.end(),0) == target

<4>:单层横向的for循环为遍历容器的元素,纵向为递归深度

三:上码

class Solution {public:vector<vector<int> >ans;vector<int>path;void backtacking(vector<int>& v,int num,int index){int sum = accumulate(path.begin(),path.end(),0);if(sum > num){return ;}if(sum == num){ans.push_back(path);return ;}for(int i = index; i < v.size(); i++){path.push_back(v[i]);backtacking(v,num,i);//这里加上index可以避免重复path.pop_back();}}vector<vector<int>> combinationSum(vector<int>& candidates, int target) {/**思路:<1>:递归函数的递归参数为backtacking(vector<int> &v,int target);<2>:递归的结果vector<vector<int >> ans;//装入所有的可行解vector<int> path;每次递归将一个值装入容器中<3>:递归终止条件accumulate(path.begin(),path.end(),0) == target<4>:单层横向的for循环为遍历容器的元素,纵向为递归深度 */backtacking(candidates,target,0);return ans;}
};


加油 宝!!!

39. 组合总和020(思路+详解)相关推荐

  1. python正则表达式提取数字比较好_python正则表达式从字符串中提取数字的思路详解...

    python从字符串中提取数字 使用正则表达式,用法如下: ## 总结 ## ^ 匹配字符串的开始. ## $ 匹配字符串的结尾. ## \b 匹配一个单词的边界. ## \d 匹配任意数字. ## ...

  2. 77.组合 | 40.组合总和II | 39.组合总和 | 784.字母大小写全排列

    77.组合 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合. 你可以按 任何顺序 返回答案. 示例 1: 输入:n = 4, k = 2 输出: [   [2,4], ...

  3. Pinterest 3.0 for iOS设计过程——升级iOS7设计思路详解

    Pinterest 3.0 for iOS设计过程--升级iOS7设计思路详解 时间2013-12-11 11:39:31  苹果开发中文站 原文  http://www.cocoachina.com ...

  4. 关于日期正则表达式的思路详解

    1        概述 首先需要说明的一点,无论是Winform,还是Webform,都有很成熟的日历控件,无论从易用性还是可扩展性上看,日期的选择和校验还是用日历控件来实现比较好. 前几天在CSDN ...

  5. 2021年美赛A题思路详解

    2021年数模美赛A题思路详解 题目分析 思路详解 由于和队友思路不一致,导致最后我的思路只算了前两问,而后几问用了我认为离题的PCA(主成分分析)的方法,我的建模思路没有得到完全实现,总体情况很不满 ...

  6. 【直播】陈安东,但扬:CNN模型搭建、训练以及LSTM模型思路详解

    CNN模型搭建.训练以及LSTM模型思路详解 目前 Datawhale第24期组队学习 正在如火如荼的进行中.为了大家更好的学习"零基础入门语音识别(食物声音识别)"的课程设计者 ...

  7. vuepdf转换html,Vue网页html转换PDF(最低兼容ie10)的思路详解

    Vue网页html转换PDF(最低兼容ie10)的思路详解 发布时间:2020-10-16 13:05:09 来源:脚本之家 阅读:95 作者:冷藏封 HTML转PDF: 1.页面底层实现--Vue: ...

  8. python处理excel大数据-Python实现大数据收集至excel的思路详解

    一.在工程目录中新建一个excel文件 二.使用python脚本程序将目标excel文件中的列头写入,本文省略该部分的code展示,可自行网上查询 三.以下code内容为:实现从接口获取到的数据值写入 ...

  9. Java编程配置思路详解

    Java编程配置思路详解 SpringBoot虽然提供了很多优秀的starter帮助我们快速开发,可实际生产环境的特殊性,我们依然需要对默认整合配置做自定义操作,提高程序的可控性,虽然你配的不一定比官 ...

最新文章

  1. PE文件和COFF文件格式分析——导出表的应用——一种摘掉Inline钩子(Unhook)的方法
  2. redis相比memcached有哪些优势?
  3. c语言 proteus 延迟2秒_周周练 | 专升本C语言
  4. Java单链表反转 详细过程
  5. 动态改变ListView布局
  6. 网页粒子背景插件 -Canvas-nest.js
  7. 重拾web开发-DIV+CSS基础(总结)
  8. Python连接MySQL的实例代码
  9. 【干货】阿里直播平台的架构演进
  10. pandas 之 set_index
  11. 操作系统总结之 输入输出系统(下)
  12. Python的动态特性(类实例增加属性,动态变量类型)
  13. 论文查重算法 python_论文查重降重绝密方法
  14. matlab标准数据,Matlab数据标准化实现
  15. html制作一个视频播放器,H5 打造属于自己的视频播放器(HTML 篇)
  16. c语言逗女生小程序代码,求一个示爱的小程序 C语言
  17. 【网络工程师路由篇】——OSPF Stub区域(思科模拟器)
  18. win10安装PL2303_Prolific_DriverInstaller_v1.5.0驱动
  19. linux系统:rm-rf执行以后,怎么办?我来教你恢复文件
  20. nfc支持饭卡吗_苹果iPhone手机开启NFC功能方法教程

热门文章

  1. React-引领未来的用户界面开发框架-读书笔记(四)
  2. 【ArcGIS风暴】ArcGIS 10.8中计算体积的方法总结
  3. Flutter之Center
  4. 链表之单链表约瑟夫问题(一)
  5. Thinkphp5.0 阿里云OSS扩展类上传示例(轮子)
  6. text 热敏打印机_只要有想象力,打印机都能做游戏
  7. oracle log.xml分析,Oracle11g 中使用ADRCI 查看alert log文件(xml格式)
  8. python链接mysql报错2003_Python连接Mysql报错问题解决
  9. 台球当中,击球的力量能传递多远?
  10. 那些上海滩的金融传奇,或许都开始于一份PPT