【发布时间】:2016-08-24 10:24:19
【问题描述】:
我有一个类似这样的金额数组:
[ 100, 20, 80, 50, 150, 20, 10 .. ]
我必须从这个数组中选择一个数量,比如 200。
所以,数量将是 150,从数组中选取 50。
我可以构建一个算法,它可以一次又一次地遍历数组并检查数量是否相等,但我想知道是否有简单的方法?
或者我必须在循环中编写一个算法匹配并挑选和检查?
谢谢。
示例说明:
我有一个数组。 说 -> 100、200、300
我有另一个数组。 说 -> 50,50,20,10,20,150,150,50,70,30
我想通过从第一个数组中选取一个数字(即 100)进行匹配,如果匹配,则通过第二个数组中的数字总和进行匹配,否则很好,我将跳过它并尝试下一个数字(即200) 在数组中。
编辑:一些说明
数组不包含完全匹配。我之前匹配它并从数组中删除。所以它只包含可以完全相同的数字。
如果任何金额与给定金额不匹配,那很好。如果数组中的总和不匹配,我将跳过。
【问题讨论】:
-
您确定总能准确得出总和吗?
-
如果只有数字 A,如果它等于数字 A,则选择数字 A 是无稽之谈。您想从列表中删除它吗?
-
你刚才描述的是简单的方法。我的意思是...有很多方法可以提供更好的运行时间,但是您描述了蛮力方法,这始终是最容易提出和实施的方法,因为它涉及的思考很少:D
-
您向我们提供了“应该是什么”的不完整、模糊的描述,没有显示代码,您希望我们解决它吗?