gpt4 book ai didi

javascript - 找到成本更低的最佳组合

转载 作者:行者123 更新时间:2023-11-29 17:54:09 24 4
gpt4 key购买 nike

我有一个这样的数组:

fee=[1 => 10,2=>18,4=>32,8=>60]

我想得到这样的结果:

7 -> 4+2+1 => 32+18+10
7=>60

9 -> 8+1 => 60+10
9=>70

这里的7、9是输入值

它是如何解决这个问题的?

最佳答案

您可以遍历费用组并获取可能的计数整数值。保存值并继续,直到检查所有组。

被迭代的数组必须首先按最低成本排序,然后是较高成本,然后是较大包在前。

function getLowestCost(value, fee) {
var result = { cost: 0 };

result.rest = Object.keys(fee).sort(function (a, b) {
return fee[a] / a - fee[b] / b || b - a;
}).reduce(function (r, a) {
result[a] = Math.floor(r / a);
result.cost += result[a] * fee[a];
return r % a;
}, value);

return result;
}

console.log(getLowestCost(7, { 1: 10, 2: 18, 4: 32, 8: 60 }));
console.log(getLowestCost(9, { 1: 10, 2: 18, 4: 32, 8: 60 }));

console.log(getLowestCost(7, { 1: 10, 2: 20, 4: 32, 8: 60 }));
console.log(getLowestCost(9, { 1: 10, 2: 20, 4: 32, 8: 60 }));
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 找到成本更低的最佳组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40790378/

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