Combination Sum II Combinations
https://leetcode.com/problems/combination-sum-ii/
题目跟前面几道题很类似,直接写代码:
class Solution {
public:
vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {
sort(candidates.begin(),candidates.end());
if(candidates.size()==)
return res;
vector<int> temp;
helper(candidates,,target,temp);
return res;
}
private:
void helper(vector<int>& candidates,int index,int target,vector<int>& temp){
if(target==)
res.push_back(temp);
if(target< || index>=candidates.size()){
return;
}
for(int i=index;i<candidates.size();i++)
{
if(i>index && candidates[i]==candidates[i-])//必须保证第一个位置以一个数值递归下去时不能重复!但第一次遍历时又必须保存,所以必须写成i>index,而不是i>0!!就是针对这类情形 1,1,2,5,6,7,10 8 【1,2,5】 【1,2,5】 【1,1,6】
continue;
temp.push_back(candidates[i]);
helper(candidates,i+,target-candidates[i],temp);//注意这个地方就不应该是index了,而应该传入i+1,否则,会出现降序数列
temp.pop_back();
}
}
private:
vector<vector<int>> res;
};
https://leetcode.com/problems/combinations/
class Solution {
public:
vector<vector<int>> combine(int n, int k) {
if(n<k)
return res;
vector<int> temp;
helper(n,,k,temp,k);
return res;
}
void helper(int n,int pos,int k,vector<int>& temp,int count){
if(==count){
res.push_back(temp);
return;
}
if(pos>n||count<)
return;
for(int i=pos;i<=n;i++){
temp.push_back(i);
helper(n,i+,k,temp,--count);//这个地方写成i+1而不是pos+1
temp.pop_back();
count++;
}
}
private:
vector<vector<int>> res;
};
Combination Sum II Combinations的更多相关文章
- 【leetcode】Combination Sum II
Combination Sum II Given a collection of candidate numbers (C) and a target number (T), find all uni ...
- Combination Sum,Combination Sum II,Combination Sum III
39. Combination Sum Given a set of candidate numbers (C) and a target number (T), find all unique co ...
- [Leetcode][Python]40: Combination Sum II
# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 40: Combination Sum IIhttps://oj.leetco ...
- [array] leetcode - 40. Combination Sum II - Medium
leetcode - 40. Combination Sum II - Medium descrition Given a collection of candidate numbers (C) an ...
- 【LeetCode】40. Combination Sum II (2 solutions)
Combination Sum II Given a collection of candidate numbers (C) and a target number (T), find all uni ...
- LeetCode: Combination Sum II 解题报告
Combination Sum II Given a collection of candidate numbers (C) and a target number (T), find all uni ...
- LeetCode解题报告—— Combination Sum & Combination Sum II & Multiply Strings
1. Combination Sum Given a set of candidate numbers (C) (without duplicates) and a target number (T) ...
- leetcode-combination sum and combination sum II
Combination sum: Given a set of candidate numbers (C) and a target number (T), find all unique combi ...
- LeetCode 040 Combination Sum II
题目要求:Combination Sum II Given a collection of candidate numbers (C) and a target number (T), find al ...
随机推荐
- npm isArray源码
module exports的是一个函数. !! val是为了将val转化成布尔值. var isArray = Array.isArray; /** * toString */ var str = ...
- Android菜鸟成长记12 -- ORMLite的简单使用
在我们的开发中,为了提高开发效率,我们一般都会使用到框架,ormilte则是我们必不可少的数据库框架. 对于ORMLite我也是今天才刚刚接触,我们先从一个简单的项目来了解它吧. ORMLite ja ...
- 修改maven默认的JDK编译版本
1.全局模式(settings.xml) <profiles> <profile> <id>jdk-1.8</id> <activation> ...
- datastage小结
1.当使用datastage组建 look_up时,得注意sparse功能,当primary link过来的数据关联不到时,传过来的值并不是null,而是空串.... 解决方法,可在transfer里 ...
- Java abstract class 和 interface 的区别
Java abstract class 和 interface 的区别 1. abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制 2. 以Door的抽象概 ...
- 还是要好好研究开源的php
听说facebook是php写的,还是要静下心来好好研究一番的嘛,踏踏实实点点滴滴的做起来!加油
- asp.net 琐记
Page的AutoEventWireup作用是是否引发PreInit Load PreRender Unload几个页面处理流程事件 和控件的事件处理函数无关
- 无cookie下载Oracle otn上的sun jdk等软件
从Oracle下载sun jdk提示:In order to download products from Oracle Technology Network you must agree to th ...
- java的Iterator源码浅析
在java的集合中,List接口继承Collection接口,AbstractList类实现了List接口,在AbstractList中的内部类Itr实现了Iterator接口 ArrayList实现 ...
- JS浮点数的加减乘除运算
文章来源地址:http://blog.csdn.net/lyd518/article/details/7236464 转载请注明出处,尊重作者劳动成果,谢谢!问题这样的: 37.5*5.5=206.0 ...