给定一个无重复元素的数组 candidates 和一个目标数 target .
/*
给定一个无重复元素的数组 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 .相关推荐
- java数组出现次数最多的数_找出数组中出现次数最多的那个数——主元素问题...
方法一:以空间换时间,可以定义一个计数数组int count[101],用来对数组中数字出现的次数进行计数(只能针对数组中数字的范围1~100),count数组中最大的元素对应的下标,即为出现次数最多 ...
- leetcode-java.T015_3Sum---给定一个n个元素的数组,是否存在a,b,c三个元素,使用得a+b+c=0,找出所有符合这个条件的三元组
<span style="color:#ff4635">敬请关注博客,后期不断更新优质博文,谢谢</span> package leetcode.T015_ ...
- 定义一个包含十个元素的数组
##1.定义一个包含十个元素的数组.数组元素自己给出 2.遍历打印出数组元素 3.求出数组当中的最小值打印出来 4.求出数组当中的最大值打印出来 `public static void main(St ...
- 有趣现象:同一个java文件中有2个类,一个public,一个无类修饰符,各有一个main函数,谁在前先执行谁!
发现一有趣现象:同一个java文件中有2个类,一个public,一个无类修饰符,个有一个main函数,谁在前先执行谁! //Detergent.java //Class:Detergent,Clean ...
- Leetcode04--给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。
文章目录 题目 一.归并算法 二.二分查找法 题目 给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2.请你找出并返回这两个正序数组的中位数. 进阶:你能设计一个时间复杂度 ...
- leetcode C++ 39. 组合总和 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 c
一.思路: DFS深度搜索,直到所有元素都被遍历.另外如果一组结果的求和大于target,剪枝返回 class Solution { public:vector<vector<int> ...
- 给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,找出数组中的某个元素...
2019独角兽企业重金招聘Python工程师标准>>> /** * 功能:给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,次数不详.找出数组中的某个元素. * 可以假定 ...
- c++删除数组中重复元素_leetcode 数组中重复的数字
找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一个重 ...
- 9.11排序与查找(三)——给定一个排序后的数组,包括n个整数,但这个数组已被旋转过多次,找出数组中的某个元素...
/** * 功能:给定一个排序后的数组.包括n个整数.但这个数组已被旋转过多次,次数不详.找出数组中的某个元素. * 能够假定数组元素原先是按从小到大的顺序排列的. */ /*** 思路:数组被 ...
- php数组选择随机元素,php 数组随机选择一个元素显示的简单示例
这篇文章主要为大家详细介绍了php 数组随机选择一个元素显示的简单示例,具有一定的参考价值,可以用来参考一下. 本代码演示了如何从php数组中随机选择一个元素显示,感兴趣的小伙伴,下面一起跟随512笔 ...
最新文章
- 入门HTML的回顾,小总结
- python redis 消息队列_python中利用redis构建任务队列(queue)
- 自建ES迁移至阿里云ES(使用脚本及logstash同步)
- 打开 谷歌浏览器exe_python使用selenium调用谷歌浏览器打开指定网页
- [pytorch、学习] - 5.8 网络中的网络(NiN)
- Spark SQL UDF2的使用
- 如何让二维码自适应浏览器的尺寸
- linux两台服务器 同一个地址_【网工玩Linux】搭建开源多运营商(ISP)链路负载均衡器...
- python 中locals() 和 globals()
- python 中 print 函数用法总结
- 再读华为代码规范文档
- 无约束最优化(三) 拟Newton法
- 宇宙最强下载器:IDM 俄罗斯大神版
- python内点法_最优化问题(三) 之 外点法(罚函数法)
- 老电脑 升级 cpu性能排行 高性价比的cpu主板选择
- 【Blender】UV贴图相关学习
- C# Socket通讯连接测试
- 面试题-实现数组map方法
- 微信小程序php签到功能,小程序签到功能的作用
- 智能合约自动化工具:示例指南