Combination Sum
来源:互联网 发布:凯文史派西出柜 知乎 编辑:程序博客网 时间:2024/05/16 18:50
原题地址:点我传送
就是一个要慢慢构造出来的办法,但是感觉自己对算法还是不够熟,构造的过程有很多问题,参考了别人构造的解法。
构造是这样完成的:记录一个begin初始为0作为构造起点,从begin的数开始,如果比target小,就把它加进来,然后再从begin开始构造(此时为一个递归),target变成target减去刚刚加进去的数。最后如果target==0(即构造完成)把它加进去ans里。无论完成与否,构造完所有情况后即将该数弹出。然后begin+1(此时为第二轮构造),如果target(此时为原target)还比此时的begin数大,继续之前那样的构造,否则结束。
C++:
class Solution {public: void solve(vector<int>& candidates, int target, vector<vector<int>>& ans,vector<int>& ansOne ,int begin) { if(target==0) { ans.push_back(ansOne); return; } else { for(int i=begin;i<candidates.size()&&target-candidates[i]>=0;i++) { ansOne.push_back(candidates[i]); solve(candidates,target-candidates[i],ans,ansOne,i); ansOne.pop_back(); } } } vector<vector<int>> combinationSum(vector<int>& candidates, int target) { sort(candidates.begin(),candidates.end()); vector<vector<int>> ans; vector<int> ansOne; solve(candidates,target,ans,ansOne,0); return ans; }};
阅读全文
0 0
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- mysql配置及授权
- 如何解决jdbc中出现的java.io.NotSerializableException
- Python 列表解析
- 程序猿的屌丝经历(二)
- 原生javascript实现ajax异步请求
- Combination Sum
- 如何通过SNMP协议保存思科路由器配置文件
- 查看部门里工资大于平均水平的员工信息,并按部门分组
- c印记(十三):表驱动编程——优美的逻辑优化者
- 深度学习笔记(三)
- java集合lis,set,map
- yuv数据格式介绍与rgb的转换,图像文件的封装
- 双向bfs——洛谷P1032 字串变换
- Python学习之matplotlib 绘制折线图详解