您的位置:首页 > 编程语言 > Java开发

01背包问题

2017-10-15 15:21 288 查看
public class test26 {

public static void main(String[] args) {
int m = 10;
int n = 3;
int[] w = {0, 3, 4, 5 };
int[] p = {0, 4, 5, 6 };

int c[][] = BackPack_Solution(m, n, w, p);
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
System.out.print(c[i][j] + "\t");
if (j == m) {
System.out.println();
}
}
}
}

public static int[][] BackPack_Solution(int m, int n, int[] w, int[] p) {
int c[][] = new int[n + 1][m + 1];
for (int i = 0; i < n + 1; i++) {
c[i][0] = 0;
}
for (int i = 0; i < m + 1; i++) {
c[0][i] = 0;
}
for (int i = 1; i < n + 1; i++) {
for (int j = 1; j < m + 1; j++) {
if ((j - w[i]) >= 0) {
c[i][j] = Math.max(c[i - 1][j - w[i]] + p[i], c[i - 1][j]);
}else{
c[i][j] = c[i-1][j];
}
}
}
return c;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  背包问题-java