我有更简单的背包变体 我只想找到一个总和达到给定值的数组中的唯一成员 代码如下:
public void process(int w){
knaprecurse(arr.length-1,w);
}
private void knaprecurse(int n,int w){
if(arr[n]>w)
knaprecurse(n-1,w);
if(arr[n]==w)
{
//add the unique members to a list
targetlist.add(....);//how?
}
if(arr[n]<w){
knaprecurse(n-1,w);
knaprecurse(n-1,w-arr[n]);
}
}
如何记录每个独特的组合,这些组合会增加值?