//背包问题
public static int bag(int totalV,int[] weights,int[] values) {
if(weights==null||weights.length==0) {
return 0;
}
int n=weights.length;
int m=totalV;
int[][] v=new int[n+1][m+1];
for (int i = 0; i < v.length; i++) {
v[i][0]=0;
}
for (int i = 0; i < v[0].length; i++) {
v[0][i]=0;
}
for (int i = 1; i < v.length; i++) {
for (int j = 1; j < v[0].length; j++) {
if(weights[i-1]>j){
//当前物品的重量大于背包容量
v[i][j]=v[i-1][j];
}else {
//当前物品的重量小于背包容量
//物品的价值+背包剩余容量能装的物品的价值
v[i][j]=Math.max(v[i-1][j], v[i-1][j-weights[i-1]]+values[i-1]);
}
}
}
return v[n][m];
}