设为首页 加入收藏

TOP

[Leetcode]Combination Sum II
2015-07-20 18:03:23 来源: 作者: 【 】 浏览:3
Tags:Leetcode Combination Sum

//本题还是有点疑惑...

//和combination sum一样,dfs

//但是因为此时是不可以重复利用,但是如果存在两个1的话按照例子就可以重复用同样的数值,只是不可多次使用

//Book上说用pre来判断,但是这样难道不会miss例子中的1,1,6的情况?...

//有或者dfs的函数就是按照各个subject出现次数而运行的...要想想...

class Solution {

public:
vector > combinationSum2(vector &num, int target) {
int len=num.size();
vector > result;
vector temp;
sort(num.begin(),num.end());
dfs(num,target,0,temp,result);
return result;
}
void dfs(vector &num, int gap, int start, vector &temp, vector >&result)
{
if(gap==0)
{
//if(result.find(temp)==result.end())//其实说这么多就是这么个意思,可是明显vector >里面没有对应的find函数,编译报错
result.push_back(temp);
return;
}
int pre=-1;
for(int i=start;i if(gap if(pre==num[i])continue;
pre=num[i];
temp.push_back(num[i]);
dfs(num,gap-num[i],i+1,temp,result);
temp.pop_back();
}
}
};
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇POJ1274_COURSES(二分图最大匹配) 下一篇hdu 1114 Piggy-Bank

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: