LeetCode 039 Combination Sum
2015-12-24 20:02
302 查看
给你一个没有排序的序列和一个target,求出序列的和的值为target,允许序列中选择的值可以重复。
直接用递归。由于需要答案有序,所以先把序列排序,然后再递归的时候不能选择比上一次小的值,可以避免重复的计算。
其中不要随便运用vector<int>uu中的uu.size()-1这个数,会出错的,当uu.size()为0的时候。
直接用递归。由于需要答案有序,所以先把序列排序,然后再递归的时候不能选择比上一次小的值,可以避免重复的计算。
其中不要随便运用vector<int>uu中的uu.size()-1这个数,会出错的,当uu.size()为0的时候。
class Solution { public: void get_ans(int ans,vector<int>& nums,vector<vector<int>>&an,vector<int> get_ss,int limit){ if(ans==0){an.push_back(get_ss);return ;} for(int ii=0;ii<nums.size();ii++){ if(ans-nums[ii]<0||ii<limit)continue; get_ss.push_back(nums[ii]); get_ans(ans-nums[ii],nums,an,get_ss,ii); get_ss.erase(get_ss.end()-1); } } vector<vector<int>> combinationSum(vector<int>& candidates, int target) { sort(candidates.begin(),candidates.end()); for(int ii=0;ii<candidates.size();ii++){ if(ii&&candidates[ii]==candidates[ii-1])candidates.erase(candidates.begin()+ii); } vector<vector<int>>yy; vector<int>uu; get_ans(target,candidates,yy,uu,0); return yy; } };
相关文章推荐
- SubMenu子菜单
- Redis整合Spring结合使用缓存实例
- Echache整合Spring缓存实例讲解
- CenterOS 6.5操作系统 Nginx下配置 NodeJS
- 如何切换eclipse中svn用户
- Using the command line to manage files on HDFS--转载
- Qt之串口通信
- 关于 TCP 并发连接的几个思考题与试验
- Hibernate是如何get和load实体的
- git各种命令介绍以及碰到的各种坑
- 从《C++ Primer 第四版》入手学习 C++
- AM5728概述(1)
- Oracle10g以DBA身份来登陆SQL*Plus实操
- react 写的省市三级联动
- samba用户权限配置
- find命令详解
- The Java Programming Language4th读书笔记-第三章 类的扩展
- Go语言命令行操作命令详细介绍
- Mina框架项目运用
- UGUI - 使用动画来改变透明度解决