【发布时间】:2012-12-27 21:45:40
【问题描述】:
我需要一些提示来找到返回 5 元素的算法,其总和最接近或等于给定数字。
这些元素是大于0 的数字,在尝试获取给定数字时,每个元素只能“使用”一次。
假设我们有一个数组{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} 和我们试图获得的数字21。它应该返回{2, 3, 4, 5, 7}。
非常感谢任何帮助!
【问题讨论】:
-
提示:你可以使用带有记忆的递归来解决这个问题。
-
从 3-SUM (en.wikipedia.org/wiki/3SUM) 开始并从那里继续前进,同时对线性时间算法失去任何希望(如果有的话)。
-
提供的“21”可能的最大值是多少。在问题中可能存在负值?
-
我不确定我是否理解你的问题。我们正在搜索的数字没有最大值,它可以是 21 或更多(只要它是正值)。但数组不会有任何负值。