我正在尝试构建一个交换算法,以交换与库存数量相同的硬币。我有一本字典,里面有两个面值的键值对
输入是要返回的值,例如2,80欧元。考虑到股票,我需要一个算法来计算返回资金的最佳方式
(最好的方法是库存硬币数量的标准差最低,这意味着所有面额的库存都是相同的),因此在这个例子中,我需要返还120欧元的硬币
{200, 0},
{100, 2},
{50, 0},
{20, 3},
{10, 2}
我怎样才能计算出最好的数字,以返回每面额使用c算法,并保持股票相同的所有硬币?
#include <map>
static map<int, int, greater<int>> ValueAmount = {
{200, 3},
{100, 20},
{50, 2},
{20, 15},
{10, 14}
};
std::map<int, int> PayoutAlgorithm(std::map<int, int> ValueAmount, long amountToPay){
}
int main(int argc, char** argv){
...
bool succes = ReturnMoney(PayoutAlgorithm());
...
return 1;
}
其中map ValueAmount是一个键值对。关键是硬币的面额,价值是现存硬币的数量。
解决这样一个问题的方法是把它分解成更容易理解的东西。
>
我们对我们的数据结构满意吗?坦率地说,我会使用一个包含数量和计数的类,而不是两个不同的数组,但那就是我。
确定我需要给他们多少(以你的最低价值——没有浮动点)。例如127美分。
开始分发硬币,从最大面额开始向下移动。例如,1英镑硬币、25美分硬币和2枚1美分硬币。
如果你用完了一枚特定的硬币,那么你必须使用更多的下一枚较低面额的硬币。
问题:https://leetcode.com/problems/coin-change/ 解决方案:https://repl.it/@Stylebender/HatefulAliceBlueTransverse#index.js 我理解从“按钮式”构建dp阵列解决方案的一般概念流程,但我只是想知道关于第10行: dp[i]=数学。最小值(dp[i],1 dp[i-硬币[j]]; 当你选择当前的第
我在理解动态规划中的硬币兑换问题时遇到了一个小问题。简单地说,我必须用最少数量的硬币来兑换一笔钱。 我有n种面值为1=v1的硬币
动态规划变更问题(有限硬币)。我正在尝试创建一个以以下内容作为输入的程序: 输出: 输出应该是大小为1的数组,其中每个单元格代表我们需要改变单元格索引量的最佳硬币数。 假设数组的单元格位于index: 5,内容为2。这意味着为了给出5(INDEX)的变化,您需要2(单元格的内容)硬币(最佳解决方案)。 基本上,我需要这个视频的第一个数组的输出(C[p])。这与有限硬币的大区别是完全相同的问题。链接
首先,是的,这是我的硬件,我觉得很难,所以我真的很感激一些指导。 我需要证明对于当
所以我对编码不熟悉,我得到了一个任务,我需要做一个程序,用四分之一、一角、五分和一美分给不到一美元的零钱。然而,作业希望程序打印所需的最低硬币数量(例如,如果我输入58美分,那么输出应该是“2个25美分,1个镍和3个便士”,而不是“2个25美分,0个10美分,1个镍和3个便士”。本质上,如果没有某种硬币,那么程序就不应该打印它)。我一直在想如何制作它,这样程序就不会打印任何不必要的硬币。 这就是我
给定一组面值和总数,我们必须找到使总数精确所需的最低硬币数量。 约束:每个面额的硬币只有一枚。 你如何比较贪婪方法和动态规划方法? 编辑:例如:我有面额为1、2、3、5的现金。我每种面额只有一枚硬币。我想用最少数量的硬币换11英镑的零钱。答案是4(1235)。如果我有无限量的每种面额,答案是3(551或533)。