public class Test2 {
public static void main(String[] args) {
/**
* 给定两个长度为n的数组weights和values
* weights[i]和values[i]分别代表i号物品的重量和价值
* 给定一个正数bag,表示一个载重bag的袋子
* 你装的物品不能超过这个重量,
* 返回你能装下最多的价值是多少?
*/
}
private static int getPrice(int[] weights,int[] values,int total,int index,int alreadyW){
if(alreadyW > total){
return -1
}
if(index == weights.length){
return 0
}
int p1 = getPrice(weights,values,total,index+1,alreadyW)
int p2Next = getPrice(weights,values,total,index+1,alreadyW+weights[index])
int p2 = -1
if(p2Next!=-1){
p2 = values[index] + p2Next
}
return Math.max(p1,p2)
}
private static int getPrice(int[] w,int[] v,int index,int rest){
if(rest < 0){
return -1
}
if(index == w.length){
return 0
}
int p1 = getPrice(w,v,index+1,rest)
int p2 = -1
int p2Next = getPrice(w,v,index+1,rest - w[index])
if(p2Next!=-1){
p2 = p2Next + v[index]
}
return Math.max(p1,p2)
}
}