标签:
void function(vector<int> vecS,vector<int> vecD,vector< vector<int> > & vecGroup,int iSum) { for(vector<int>::iterator itr = vecS.begin(); itr != vecS.end(); ++itr) { if(iSum - *itr == 0) { vecD.push_back(*itr); // 去掉重复组合 ---------------- vector<int> vecTemp(vecD.begin(),vecD.end()); sort(vecTemp.begin(),vecTemp.end()); vector< vector<int> >::iterator iter = find(vecGroup.begin(),vecGroup.end(),vecTemp); if(iter == vecGroup.end()) { vecGroup.push_back(vecTemp); } // 去掉重复组合 ---------------- vecD.pop_back(); } else { vecD.push_back(*itr); vector<int> vecTemp(vecS.begin(),vecS.end()); vector<int>::iterator it = find(vecTemp.begin(),vecTemp.end(),*itr); vecTemp.erase(it); function(vecTemp,vecD,vecGroup,iSum - *itr); vecD.pop_back(); } } }
但是效率实在是太低了。。。。
标签:
原文地址:http://www.cnblogs.com/LeavesSmallAnt/p/4616280.html