计算一下从 167.37 美元开始找零的不同方式?

2024-03-11

这是一个面试问题:

给定一个金额,例如 167.37 美元,找到使用该货币可用面额为该金额找零的所有可能方法?

任何人都可以想到一种空间和时间高效的算法和支持代码,请分享。

这是我编写的代码(工作)。我正在尝试找到它的运行时间,感谢任何帮助

    import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Map;


public class change_generation {

    /**
     * @param args
     */

    public static void generatechange(float amount,LinkedList<Float> denominations,HashMap<Float,Integer> useddenominations)
    {
        if(amount<0)
            return;
        if(amount==0)
        {
            Iterator<Float> it = useddenominations.keySet().iterator();
            while(it.hasNext())
            {
                Float val = it.next();
                System.out.println(val +" :: "+useddenominations.get(val));
            }

            System.out.println("**************************************");
            return;
        }

        for(Float denom : denominations)
        {

            if(amount-denom < 0)
                continue;

            if(useddenominations.get(denom)== null)
                useddenominations.put(denom, 0);

            useddenominations.put(denom, useddenominations.get(denom)+1);
            generatechange(amount-denom, denominations, useddenominations);
            useddenominations.put(denom, useddenominations.get(denom)-1);
        }

    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        float amount = 2.0f;
        float nikle=0.5f;
        float dollar=1.0f;
        float ddollar=2.0f;

        LinkedList<Float> denominations = new LinkedList<Float>();


        denominations.add(ddollar);
        denominations.add(dollar);
        denominations.add(nikle);

        HashMap<Float,Integer> useddenominations = new HashMap<Float,Integer>();
        generatechange(amount, denominations, useddenominations);
    }

}

EDIT

这是组合/子集问题的具体示例,在此得到解答。

找出所有可能的数字组合以达到给定的总和 https://stackoverflow.com/questions/4632322/finding-all-possible-combinations-of-numbers-to-reach-a-given-sum

---我保留下面的答案(因为它对某人有用),但是,不可否认,这不是这个问题的直接答案---

原答案

最常见的解决方案是动态规划:

首先,您找到更改 1 的最简单方法,然后使用该解决方案更改 2、3、4、5、6 等...在每次迭代时,您“检查”是否可以“向后”并减少答案中的硬币数量。例如,最多“4”,您必须添加便士。但是,一旦达到“5”,您就可以取出所有便士,并且您的解决方案只需要一枚硬币:镍币。但到了 9 点,你又必须添加便士,等等等等。

然而,动态规划方法并不能保证很快。

或者,您可以使用贪婪方法,不断地选择尽可能大的硬币。这非常快,但并不总能为您提供最佳解决方案。但是,如果您的硬币是 1 5 10 和 25 ,那么贪心法就可以完美工作,并且比线性规划方法快得多。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算一下从 167.37 美元开始找零的不同方式? 的相关文章

  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 关键字“table”附近的语法不正确,无法提取结果集

    我使用 SQL Server 创建了一个项目 其中包含以下文件 UserDAO java public class UserDAO private static SessionFactory sessionFactory static se
  • 如何使用 jUnit 将测试用例添加到套件中?

    我有 2 个测试类 都扩展了TestCase 每个类都包含一堆针对我的程序运行的单独测试 如何将这两个类 以及它们拥有的所有测试 作为同一套件的一部分执行 我正在使用 jUnit 4 8 在 jUnit4 中你有这样的东西 RunWith
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • 在 C 中初始化变量

    我知道有时如果你不初始化int 如果打印整数 您将得到一个随机数 但将所有内容初始化为零似乎有点愚蠢 我问这个问题是因为我正在评论我的 C 项目 而且我对缩进非常直接 并且它可以完全编译 90 90 谢谢 Stackoverflow 但我想
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • 为什么调用非 const 成员函数而不是 const 成员函数?

    为了我的目的 我尝试包装一些类似于 Qt 共享数据指针的东西 经过测试 我发现当应该调用 const 函数时 会选择它的非 const 版本 我正在使用 C 0x 选项进行编译 这是一个最小的代码 struct Data int x con
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • Qt - ubuntu中的串口名称

    我在 Ubuntu 上查找串行端口名称时遇到问题 如您所知 为了在 Windows 上读取串口 我们可以使用以下代码 serial gt setPortName com3 但是当我在 Ubuntu 上编译这段代码时 我无法使用这段代码 se
  • 如何在 32 位或 64 位配置中以编程方式运行任何 CPU .NET 可执行文件?

    我有一个可在 32 位和 64 位处理器上运行的 C 应用程序 我试图枚举给定系统上所有进程的模块 当尝试从 64 位应用程序枚举 32 位进程模块时 这会出现问题 Windows 或 NET 禁止它 我认为如果我可以从应用程序内部重新启动
  • 外键与独立关系 - Entity Framework 5 有改进吗?

    我读过了several http www ladislavmrnka com 2011 05 foreign key vs independent associations in ef 4 文章和问题 https stackoverflow
  • 等待进程释放文件

    我如何等待文件空闲以便ss Save 可以用新的覆盖它吗 如果我紧密地运行两次 左右 我会得到一个generic GDI error
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • 不同类型指针之间的减法[重复]

    这个问题在这里已经有答案了 我试图找到两个变量之间的内存距离 具体来说 我需要找到 char 数组和 int 之间的距离 char data 5 int a 0 printf p n p n data 5 a long int distan
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • 当我使用 OpenSSL1.1.0g 根据固定的 p 和 g 值创建 Diffie Hellman 密钥协议密钥时,应该执行哪些检查?

    您好 我尝试通过这段代码使用修复 p 和 g 参数来制作 Diffie Hellman Keysanswer https stackoverflow com a 54538811 4706711 include

随机推荐

  • 无法连接到 (LocalDB)\MSSQLLocalDB -> 用户“User-PC\User”登录失败

    当我尝试通过 SQL Server Management Studio 连接 LocalDB MSSQLLocalDB 时 出现错误 我还尝试使用默认数据库作为 master 登录 错误是相同的 Here is the Server det
  • JavaScript 中的嵌套层数是否有限制?

    假设您有一个非常复杂的算法 需要数十个 for 循环 JavaScript 对循环的嵌套深度有限制还是没有限制 深层嵌套 for 循环的最佳实践是什么 我尝试在 MDN 上搜索 但找不到我要找的内容 Edit 我正在寻找是否有内置限制 例如
  • Java - 接口扩展自身

    我已经使用这个网站大约 6 个月了 是时候问我的第一个问题了 因为我找不到这个问题的答案 至少不是我能理解的答案 在这段代码中 为什么这个接口要扩展自身 public interface PositionedVertex
  • DecorView子框架布局

    有人可以向我解释一下 为什么我的布局上的 DecorView 的子级是 FrameLayout 而我还没有定义它 这是xml布局
  • 观察者模式是否违反了单一责任原则?

    如果使用观察者设计模式的应用程序具有subject具有以下职责的类 1 管理和通知观察者 即提供注册和注销函数并调用所有观察者通知函数 和 2 它最初的责任 即班级在成为班级之前正在做什么subject 这个类是否违反了单一职责原则 它显然
  • jsPDF 不完整或损坏的 PNG 文件

    使用 jsPDF 添加常规 png 图像没有问题 但现在我从服务器发送生成的图像 并且浏览器控制台在渲染 PDF 文件时显示此错误 PNG 文件不完整或损坏 显然图像不是不完整或损坏的 因为我可以看到服务器的响应并且图像很好 另外 为了避免
  • 函数参数列表中的三个点是什么意思?

    我遇到了这样的函数定义 char abc char f 三个点是什么意思 这些类型的函数称为可变参数函数 维基百科链接 https en wikipedia org wiki Variadic function 他们使用省略号 即三个点 来
  • Linux perf 中的运行时间和报告的周期计数

    我在 4 核 Intel CPU 每个核心 1 个线程 上运行了单线程矩阵乘法 但 perf 中的数字没有意义 Performance counter stats for system wide 31 728 397 287 cpu cyc
  • 使用 Poco 和 Boost C++ 的多个 Http 服务器

    我正在尝试使用 Poco Net 和 Boost 库创建多个 Http 服务器 但在 Poco 文件内部出现以下错误应用程序 cpp Assertion violation pInstance 0 in file src Applicati
  • 无法安装渐进式网络应用程序网站:没有可显示的图标

    我正在构建一个渐进式网络应用程序 我从样板开始创建反应应用程序 https github com facebookincubator create react app 然后我添加了一个网络应用程序清单 应用程序 公共 manifest js
  • Selenium Webdriver C# 无需等待页面加载

    我有以下场景 我想导航到一个页面 然后 一旦出现按钮就单击它 不等待页面加载 我不想等待初始页面加载 因为这需要很长时间 我的程序目前卡住 直到页面加载然后单击按钮 我基本上想导航到链接 然后无需等待页面并继续我的代码 无论如何还有这个吗
  • Bootstrap 手风琴箭头颜色 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我怎样才能改变颜色崩溃了手风琴箭头 我尝试了更多解决方案 但我设法仅更改按钮的文本颜色 恒定的颜色是蓝色 与深色背景根本不兼容 例子
  • ListView 性能缓慢

    我有一个习惯ListView我在那里展示了一些从本地数据库检索到的武器 我总共有 88 行 每行每次设置一个文本和一个图像getView 叫做 这ListView快速滚动时会出现滞后 垃圾收集器会变得疯狂 每秒删除一些 1M 对象 我不明白
  • 为什么这个正则表达式在 JavaScript 中的计算结果为 false?

    我正在寻找一个 0 9 数字的字符串 没有其他字符 这是用 假 值提醒我 var regex new RegExp d 0 9 alert regex test 123456789 这些返回 true 我明白为什么 和 表示整个字符串需要匹
  • Cookie 与子域 Nodejs httponly Cookie 共享

    我正在使用快速会话模块来维护会话 我有两个应用程序 我想与此应用程序共享cookie 父应用程序在 example com 中运行 子应用程序在 child example com 中运行 我使用它在子应用程序中设置的express ses
  • 禁止在第一个字符位置键入 0(零)

    我正在使用 Jquery 数字插件 该插件只允许在输入中键入数字值 tbQuan numeric 除了这个插件正在做的事情之外 我还需要在第一个字符位置禁用键入 0 零 任何帮助 将不胜感激 尝试这个 input keypress func
  • 可以像这样在 ASP.NET Core 中制作 SEO 友好的 Url

    我想问你们是否可以为我的项目做一些这样的路由 action title 我想知道这是否可能 这个网址也必须是主键吗 由于没有传递 ID 来知道这是哪篇博文 谢谢 您可以使用属性路由轻松地做到这一点 Route blogs public cl
  • 当应用程序无法处理深层链接时如何优雅地回退到网站

    情况 您有一个内容广泛的移动网站 m somewhere com 在 Google Play 上 您有一个 Android 应用程序 它复制了 m somewhere com 的主要功能 但不是全部 您的客户 雇主 投资者要求您为应用程序可
  • 在 bootstrap/compiled.php 中找不到 Laravel 4 类

    我已经使用 Git 创建了一个新分支 对我的代码应用了一些更新 在我的临时服务器上检查了该分支 现在我无法运行任何与 Composer 相关的内容 我已经在composer json中添加了一些新的包 这些包适用于我的开发环境 但是一旦我尝
  • 计算一下从 167.37 美元开始找零的不同方式?

    这是一个面试问题 给定一个金额 例如 167 37 美元 找到使用该货币可用面额为该金额找零的所有可能方法 任何人都可以想到一种空间和时间高效的算法和支持代码 请分享 这是我编写的代码 工作 我正在尝试找到它的运行时间 感谢任何帮助 imp