无界背包算法

时间:2016-12-29 00:43:12

标签: java dynamic-programming knapsack-problem

在使用动态编程(https://en.wikipedia.org/wiki/Knapsack_problem#Unbounded_knapsack_problem)的经典无界背包算法解决方案中,我们分配一个大小为背包的整数数组来存储最大值。

如果我有一个10亿大小的背包,我该如何优化DP解决方案以确保我可以容纳int[] knapsack阵列?因为Java占用的内存为1B大小的背包= 10^9 * 4Bytes = 3.7GB仅内存。

1 个答案:

答案 0 :(得分:0)

您不必尝试使用内存中的所有数据来解决此问题,而是必须找到使用辅助内存的解决方案,例如访问文件或可能设置数据库。