[LeetCode] 40. Combination Sum II

xiaoxiao2021-02-28  103

注意和39题区别,当前层值相同则跳过

回溯法

void cb2help(vector<vector<int>> &res,vector<int> &v,int target,unsigned int i,vector<int> recp) { if(target<0) return; else if(target==0) { res.push_back(recp); return; } for(unsigned int k=i;k<v.size();++k) { if(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<vector<int>> combinationSum2(vector<int>& v, int target) { sort(v.begin(),v.end()); vector<vector<int>> res; vector<int> recp; cb2help(res,v,target,0,recp); return res; }
转载请注明原文地址: https://www.6miu.com/read-57751.html

最新回复(0)