algorithm - 携带有数量和重量限制的 gem 如何发挥最大值(value)?

标签 algorithm knapsack-problem

假设您有 100 颗 gem ,每颗 gem 的权重都在 0 到 100 之间,每颗 gem 的值(value)可以是任意正数。您只能携带其中的 5 个,并且总重量不能超过 30。

如何挑选携带值(value)最大的 gem ?

目前,我在我的项目中遇到了类似的情况,我正在通过蛮力解决它。有没有更快的方法?

最佳答案

嗨,这是一个非常常见的算法挑战,称为背包问题,最好通过动态规划解决:

https://en.wikipedia.org/wiki/Knapsack_problem

关于algorithm - 携带有数量和重量限制的 gem 如何发挥最大值(value)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43891444/

相关文章:

c++ - 如何为 C/C++ 编写二进制算法

algorithm - 递归算法的时间复杂度分析

java - 内存:Rememo

c++ - 背包的变体

java - 如何知道在背包问题(DP实现)中选择了哪个项目?

algorithm - 应用主定理的案例 3

algorithm - 查找/计算方法的复杂性

c - 0-1 背包的 DP,有两个优化因素。链接 - http ://www. spoj.com/problems/SCUBADIV/

c++ - 查找背包中带了哪些元素

c - 数组排列、二叉树、回溯