【发布时间】:2018-03-12 21:33:14
【问题描述】:
让我们举个例子,数组中的数字大于 0:
let prices = [10,6200,20,20,350,900,26,78,888,10000,78,15000,200,1280,2000,450];
在我们将所有数字相加并得到总金额(例如,它是33770)之后,我们希望从这个总金额中提取一些 %(部分)。假设 5% (1689)。
我们的输出将是来自第一个数组的最佳候选数组。当然,该值不必正好是 5%,但它不能超过 5%,而且它必须包含尽可能大的数字。
我尝试了一些算法,但它无法预测并且非常不准确。
编辑:我想到了使用包含和排除原则。可以帮忙吗?
【问题讨论】:
-
显示您尝试过的算法。询问为什么它无法预测。
-
我们的输出将是来自第一个数组的最佳候选数组?这是什么意思?
-
您期望实际值的结果如何?
-
@Ele 来自第一个数组女巫的数字数组将具有第一个数组的 10% 的值
-
先对数组求和。然后计算总数和10%。然后,您将要对数组进行排序,从最小到最大,然后累积总数直到小于但不超过 10%,在您的示例 3377 中。
标签: javascript node.js algorithm sorting