135-数字组合

给出一组候选数字(C)和目标数字(T),找到C中所有的组合,使找出的数字和为T。C中的数字可以无限制重复被选取。
例如,给出候选数组[2,3,6,7]和目标数字7,所求的解为:
[7],
[2,2,3]

注意事项

所有的数字(包括目标数字)均为正整数。
元素组合(a1, a2, … , ak)必须是非降序(ie, a1 ≤ a2 ≤ … ≤ ak)。
解集不能包含重复的组合。

样例

给出候选数组[2,3,6,7]和目标数字7
返回 [[7],[2,2,3]]

标签

回溯法 数组

思路

首先对候选数字排序、剔重,然后采取回溯和递归

code

class Solution {
public:/*** @param candidates: A list of integers* @param target:An integer* @return: A list of lists of integers*/vector<vector<int> > combinationSum(vector<int> &candidates, int target) {// write your code hereint size = candidates.size();if(size <= 0) {return vector<vector<int> >();}vector<vector<int> > result;vector<int> temp;sort(candidates.begin(), candidates.end());  candidates.erase(unique(candidates.begin(), candidates.end()), candidates.end()); combinationSum(candidates, temp, 0, 0, target, result);return result;}void combinationSum(vector<int> &candidates, vector<int> &temp, int sum, int current, int target, vector<vector<int> > &result) {if(sum == target) {result.push_back(temp);return ;}else if(sum > target) {return ;}for(int i=current; i<candidates.size(); i++) {  temp.push_back(candidates[i]);sum += candidates[i];combinationSum(candidates, temp, sum, i, target, result);  sum -= temp[temp.size()-1];  temp.pop_back();  } }
};

转载于:https://www.cnblogs.com/libaoquan/p/7219851.html

lintcode-135-数字组合相关推荐

  1. LintCode 数字组合 题解

    数字组合 描述 笔记 数据 评测 给出一组候选数字(C)和目标数字(T),找到C中所有的组合,使找出的数字和为T.C中的数字可以无限制重复被选取. 例如,给出候选数组[2,3,6,7]和目标数字7,所 ...

  2. 36 数字组合(Combination Sum)

    文章目录 1 题目 2 解决方案 2.1 思路 2.2 图解 2.3 时间复杂度 2.4 空间复杂度 3 源码 1 题目 题目:数字组合(Combination Sum) 描述:给定一个候选数字的集合 ...

  3. Python如何实现将四位数字组合成一个不重复的三位数,for循环暴力解法

    Python如何实现将四位数字组合成一个不重复的三位数,for循环暴力解法 周末的时候遇到一个题目,看似很简单,但是在当时考试的情况下来说,我误判了,我没有把握好时间,导致我后面时间很紧,没有时间去思 ...

  4. python编程实战(二):一文教你生成随机验证码!大小写字母与数字组合,位数可以控制

    随机验证码的生成 前言 正文 实现 代码 效果 前言 验证码验证,是常见的安全验证的一种方式,可以用来杜绝脚本和机器人操作等等: 除了本文介绍的简单的验证码之外,还有拼图验证.文字顺序验证等常见的验证 ...

  5. validate验证长度 vue_vue input 输入校验字母数字组合且长度小于30的实现代码

    下面一段代码给大家分享vue input 校验字母数字组合且长度小于30,具体代码如下所示: validateJyh(glhm){//校验关联交易号 var reg = /^[A-Za-z0-9]{1 ...

  6. 检索数据_20_按照字符串数字组合的排序

    按照字符串数字组合的排序 需求描述 需求:假设我们从雇员表emp里创建个视图,这里仅有一个字段,该字段叫data由员工名称和部门号拼接而成,我们想实现一个查询可以按照原来的部门编号逆序排序筛选出数据. ...

  7. python电话号码对应的字符组合_Python3 在字符串中提取字母+数字组合微信账号、电话等 - pytorch中文网...

    今天处理数据要提取字符串中的微信,字符串中包含中文英文Emoji,标点符号等. python 提取字符串中的电话 提取电话相对简单,多个电话也可以提取 import re desstr = " ...

  8. 小数位数_圆周率的小数位是否包含了所有的数字组合?

    人们很早就认识到,无论多大的圆,其周长除以直径是一个恒定的常数,该常数被称为圆周率.一直以来,数学家知道圆周率是一个小数,但并不清楚这个小数是否是循环的.为此,数学家不断想办法计算出更多小数位的圆周率 ...

  9. 搭建基于飞桨的OCR工具库,总模型仅8.6M的超轻量级中文OCR,单模型支持中英文数字组合识别、竖排文本识别、长文本识别的PaddleOCR

    介绍 基于飞桨的OCR工具库,包含总模型仅8.6M的超轻量级中文OCR,单模型支持中英文数字组合识别.竖排文本识别.长文本识别.同时支持多种文本检测.文本识别的训练算法. 相关链接 PaddleOCR ...

  10. π里包含了所有可能的数字组合吗?

    "π,圆周长与其直径之比,这是开始.后面一直有,无穷无尽.永不重复.就是说在这串数字中,包含每种可能的组合.你的生日,储物柜密码,你的社保号码,都在其中某处.如果把这些数字转换为字母,就能得 ...

最新文章

  1. 远程挂载 NFS 共享目录引发死机问题
  2. R语言使用DALEX包的model_profile函数对caret包生成的多个算法模型的离散变量进行分析、使用偏依赖图(Partial Dependence Plots)解释某个离散特征和目标y的关系
  3. sqlite database is locked 问题解决方案
  4. [CLR via C#]12. 泛型
  5. 【Android 应用开发】对Android体系结构的理解--后续会补充
  6. 什么叫工作到位?很深刻!
  7. linux安装卸载mysql,Linux6 系列 安装、卸载mysql
  8. 就会编成新闻稿的飞鸽传书
  9. DispatcherServlet与初始化主线
  10. linux应用之Lamp(apache+mysql+php)的源码安装(centos)
  11. echarts单个实例包含多个grid,标题分别居中
  12. html怎么防止扒站点,扒站工具-扒取站点js css的工具
  13. 电子计算机为什么123安不出来,方正软件常见问题及其解决办法-精.doc
  14. java 堆栈信息分析_Java堆栈信息分析
  15. C语言将图片转化成Base64码
  16. CTGU 2021春-MySQL数据库实验2:基本查询1-2关,共10小题全代码+信息表+通关截图!
  17. Win键无效/Win键失灵/Win键被禁用/Win键+组合键不起作用
  18. codevs 2833 奇怪的梦境
  19. 小程序底部tabbar加数字标
  20. Python的提交表单功能

热门文章

  1. C/C++笔试经典程序(二)
  2. 写在前面--点燃酱爆心中的那团火
  3. JAVA开发第一步——JDK 安装
  4. 自己动手实现STL:前言
  5. 对HGE游戏引擎的一次封装
  6. Access 中数据库操作时提示from子句语法错误
  7. Linux---高级IO
  8. Vue报错:3 errors and 0 warnings potentially fixable with the `--fix` option.
  9. 计算机网络—路由器(Cisco Packet Tracer)常用的命令总结
  10. 今天来总结一下CSS中有哪些定位