java 0/1背包堆空间
我有一个0/1背包问题。有400行和9476897背包容量的数据。我还有另一个大数据(10.000行)。当我运行这个程序时,它在二维数组中给出了一个错误。我怎样才能改变它?顺便说一句,我在所有情况下都更改了-Xms,但它不起作用
错误: 线程“main”java中出现异常。lang.OutOfMemoryError:Java堆空间 在背包上。简单填充(背包,java:108) 在背包上。main(Knapsack.java:99)
int[][] s = new int[n + 1][W + 1];
for (int w = 0; w <= W; w++) {
s[0][w] = 0;
}
for (int i = 0; i <= n; i++) {
s[i][0] = 0;
}
for (int i = 1; i <= n; i++) {
for (int w = 0; w <= W; w++) {
if (st[i].weight <= w) {
if (st[i].profit + s[i - 1][w - st[i].weight] > s[i - 1][w]) {
s[i][w] = st[i].profit + s[i - 1][w - st[i].weight];
} else {
s[i][w] = s[i - 1][w];
}
} else {
s[i][w] = s[i - 1][w];
}
}
}
共 (0) 个答案