当前位置: 首页 > 表达 > 正文

数据结构背包问题 publicclass背包问题

分类:表达 浏览:30032


  public class 背包问题 {

  public static void main(String[] args) {

  int[] w={1, 2, 3}; // 物品重量

  int[] val={6, 10, 12}; // 物品价值

  int m=5; // 背包容量

  int n=val.length; //

  // 创建二维数组

  int[][] v=new int[n + 1][m + 1];

  // 将第一行和第一列赋值为0

  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 (w[i - 1] > j) {

  // 不装入背包

  v[i][j]=v[i - 1][j];

  } else {

  // 装入背包

  v[i][j]=Math.max(v[i - 1][j], val[i - 1] + v[i - 1][j - w[i - 1]]);

  }

  }

  }

  // 输出二维数组

  for (int i=1; i < v.length; i++) {

  for (int j=1; j < v[0].length; j++) {

  System.out.print(v[i][j] + "\t");

  }

  System.out.println();

  }

  }

  }


标签:in for 背包 问题 装入 


相关推荐

排行推荐
最新推荐
最新TAG

关灯