void deep(vector<int>& candidates,int target,vector<int> &t,int sum)//参数
{
if(sum>=target)//终止条件
{
if(sum==target) //终止操作
res.push_back(t);
return ;
}
for(int i=0;i<candidates.size();i++)//循环
{
if(t.size()!=0 && candidates[i]<t[t.size()-1]) //检查新的数据是否可用
continue;
t.push_back(candidates[i]); //母分支加入元素生出新的子分支
deep(candidates,target,t,sum+candidates[i]); //子分支进行下一次循环
t.pop_back(); //删除元素返回母分支,等下一次再加新元素,生出另一个新的子分支
}
}
void deep(//参数)
{
if(//终止条件)
{
//终止操作
return ;
}
for(//循环)
{
//检查新的数据是否可用
continue;
//本分支加入元素生出新的子分支
//进行下一次循环
//删除元素返回本分支,等下一次再加新元素,生出另一个新的子分支
}
}