/*

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

candidates 中的数字可以无限制重复被选取。

说明:

所有数字(包括 target)都是正整数。
解集不能包含重复的组合。 
示例 1:

示例 1:

输入:candidates = [2,3,6,7], target = 7,
所求解集为:
[[7],[2,2,3]
]

*/

#include<iostream>
using namespace std;
#include<vector>
#include<algorithm>void backTrack(vector<int> &candidates, vector<vector<int>> &ans, int start, vector<int> &temp, int target){if (target < 0) return;  // 已经爆了if (target == 0)   // 刚好合适{ans.push_back(temp);return;}for (int i = start; i < candidates.size(); i++){if (candidates[i] > target)// 后面全是大于target的,直接跳出break;temp.push_back(candidates[i]);backTrack(candidates, ans, i, temp, target - candidates[i]);temp.pop_back();}}vector<vector<int>> combinationSum(vector<int>& candidates, int target){sort(candidates.begin(), candidates.end());vector<vector<int>> ans;vector<int> temp;backTrack(candidates, ans, 0, temp, target);return ans;}int main()
{int num;int n;vector<int> s;int target;cout << "输入目标值";cin >> target;while (cin>>num&&num!='#') {s.push_back(num);}vector<vector<int>> result;result = combinationSum(s, target);for (int i = 0; i < result.size(); i++) {cout << "[";for (int j = 0; j < result[i].size(); j++) {cout << result[i][j] << " ";}cout << "]";cout << endl;}return 0;
}

给定一个无重复元素的数组 candidates 和一个目标数 target .相关推荐

  1. java数组出现次数最多的数_找出数组中出现次数最多的那个数——主元素问题...

    方法一:以空间换时间,可以定义一个计数数组int count[101],用来对数组中数字出现的次数进行计数(只能针对数组中数字的范围1~100),count数组中最大的元素对应的下标,即为出现次数最多 ...

  2. leetcode-java.T015_3Sum---给定一个n个元素的数组,是否存在a,b,c三个元素,使用得a+b+c=0,找出所有符合这个条件的三元组

    <span style="color:#ff4635">敬请关注博客,后期不断更新优质博文,谢谢</span> package leetcode.T015_ ...

  3. 定义一个包含十个元素的数组

    ##1.定义一个包含十个元素的数组.数组元素自己给出 2.遍历打印出数组元素 3.求出数组当中的最小值打印出来 4.求出数组当中的最大值打印出来 `public static void main(St ...

  4. 有趣现象:同一个java文件中有2个类,一个public,一个无类修饰符,各有一个main函数,谁在前先执行谁!

    发现一有趣现象:同一个java文件中有2个类,一个public,一个无类修饰符,个有一个main函数,谁在前先执行谁! //Detergent.java //Class:Detergent,Clean ...

  5. Leetcode04--给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。

    文章目录 题目 一.归并算法 二.二分查找法 题目 给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2.请你找出并返回这两个正序数组的中位数. 进阶:你能设计一个时间复杂度 ...

  6. leetcode C++ 39. 组合总和 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 c

    一.思路: DFS深度搜索,直到所有元素都被遍历.另外如果一组结果的求和大于target,剪枝返回 class Solution { public:vector<vector<int> ...

  7. 给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,找出数组中的某个元素...

    2019独角兽企业重金招聘Python工程师标准>>> /** * 功能:给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,次数不详.找出数组中的某个元素. * 可以假定 ...

  8. c++删除数组中重复元素_leetcode 数组中重复的数字

    找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一个重 ...

  9. 9.11排序与查找(三)——给定一个排序后的数组,包括n个整数,但这个数组已被旋转过多次,找出数组中的某个元素...

    /**  * 功能:给定一个排序后的数组.包括n个整数.但这个数组已被旋转过多次,次数不详.找出数组中的某个元素.  * 能够假定数组元素原先是按从小到大的顺序排列的.  */ /*** 思路:数组被 ...

  10. php数组选择随机元素,php 数组随机选择一个元素显示的简单示例

    这篇文章主要为大家详细介绍了php 数组随机选择一个元素显示的简单示例,具有一定的参考价值,可以用来参考一下. 本代码演示了如何从php数组中随机选择一个元素显示,感兴趣的小伙伴,下面一起跟随512笔 ...

最新文章

  1. 入门HTML的回顾,小总结
  2. python redis 消息队列_python中利用redis构建任务队列(queue)
  3. 自建ES迁移至阿里云ES(使用脚本及logstash同步)
  4. 打开 谷歌浏览器exe_python使用selenium调用谷歌浏览器打开指定网页
  5. [pytorch、学习] - 5.8 网络中的网络(NiN)
  6. Spark SQL UDF2的使用
  7. 如何让二维码自适应浏览器的尺寸
  8. linux两台服务器 同一个地址_【网工玩Linux】搭建开源多运营商(ISP)链路负载均衡器...
  9. python 中locals() 和 globals()
  10. python 中 print 函数用法总结
  11. 再读华为代码规范文档
  12. 无约束最优化(三) 拟Newton法
  13. 宇宙最强下载器:IDM 俄罗斯大神版
  14. python内点法_最优化问题(三) 之 外点法(罚函数法)
  15. 老电脑 升级 cpu性能排行 高性价比的cpu主板选择
  16. 【Blender】UV贴图相关学习
  17. C# Socket通讯连接测试
  18. 面试题-实现数组map方法
  19. 微信小程序php签到功能,小程序签到功能的作用
  20. 智能合约自动化工具:示例指南

热门文章

  1. l2空间的完备性_话说泛函——Hilbert空间
  2. Excel中插入图表后在设计选项卡无法选择样式解决办法
  3. 内连接、左外连接与右外连接的区别及作用介绍
  4. 推荐系统-利用用户行为数据
  5. 葛冬冬斯坦福专业_比较预测模型的表现冬冬与有马
  6. 微信公众号发红包功能,现金红包、裂变红包接口
  7. C#开发微信门户及应用(34)--微信裂变红包
  8. Hyperledger Fabric Service Discovery CLI(服务发现命令行工具)学习笔记
  9. 计算机电子贺卡制作圣诞节,如何制作电子圣诞贺卡?贺卡制作步骤
  10. 2019第一季度工作总结