我的是物品没有带价值的背包能带多少重量的问题,我已经实现,运行结果是没有问题的。特别分享。inta[]={11,8,7,6,5};inttotal=28;intleftbound=total;inti=0;intj=0;Stackstack1=new...
我的是物品没有带价值的背包能带多少重量的问题,我已经实现,运行结果是没有问题的。特别分享。
int a[] ={11,8,7,6,5};
int total=28;
int leftbound = total;
int i=0;
int j=0;
Stack stack1 = new Stack();
Stack stack2 = new Stack();
while(j < 5){
i=j;
while(i<5){
if(a[i]==leftbound){
stack1.push(new Integer(a[i]));
stack2.push(new Integer(i));
return;
}else if(a[i] < leftbound){
stack1.push(new Integer(a[i]));
stack2.push(new Integer(i));
leftbound = leftbound - a[i];
}
if(i>=4 && !stack1.empty()){
leftbound= leftbound + ((Integer)stack1.pop()).intValue();
i=((Integer)stack2.pop()).intValue()+1;
continue;
}
i++;
}
j++;
leftbound = total;
while(!stack1.empty()){
stack1.pop();
stack2.pop();
}
}
}
展开