gpt4 book ai didi

java - 给定第一个元素的权重限制,获得对的第二个元素的最大总和

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:57:54 25 4
gpt4 key购买 nike

我正在查看示例面试问题并弹出。

该问题要求一个程序接受两个数字,L(限制)和 C(要输入的案例数)。然后输入C个整数对,其中整数对由(weight, value)组成。

现在,程序应该给出权重加起来小于或等于限制的最大可能值。

例如,如果有人输入:

(10,4),(5,2),(1,1),(4,9),(5,7)

程序应该输出 17。第一对表示权重限制为 10,并且将输入 4 个测试用例。接下来的四对是测试用例,最理想的组合由最后三个用例组成,因为它们的权重加起来 <= 10,而值的结果是 17,这是给定限制的最高可能值。

我已经尝试了一段时间来解决这个问题,但我没有找到真正有效的解决方案。到目前为止,我采用的方法是找到所有可能的权重加起来小于或等于限制,然后简单地查看它们的所有总和,然后选择最大的。但我觉得这是一个非常低效的解决方案,使用某种排序可能会更好。如有任何建议,我们将不胜感激。

最佳答案

这是 Knapsack Problem 的一个实例.维基百科页面列出了许多可以有效解决此问题的已知算法。您可能想从这些算法中获得一些灵感。

关于java - 给定第一个元素的权重限制,获得对的第二个元素的最大总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30421734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com