本文共 642 字,大约阅读时间需要 2 分钟。
注意和39题区别,当前层值相同则跳过
回溯法
void cb2help(vector> &res,vector &v,int target,unsigned int i,vector recp){ if(target<0) return; else if(target==0) { res.push_back(recp); return; } for(unsigned int k=i;k i&&v[k]==v[k-1]) continue; recp.push_back(v[k]); cb2help(res,v,target-v[k],k+1,recp); recp.pop_back(); if(target-v[k]<0) return; }}vector > combinationSum2(vector & v, int target){ sort(v.begin(),v.end()); vector > res; vector recp; cb2help(res,v,target,0,recp); return res;}
转载地址:http://erfx.baihongyu.com/