计算一下从 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 美元开始找零的不同方式? 的相关文章

  • 多对多不检索映射数据

    Spring boot 2 5 6 我无法安装版本 概要文件 java Getter Setter NoArgsConstructor AllArgsConstructor EqualsAndHashCode FieldDefaults l
  • 计算给出数组中最小标准差的子集

    让我们有一个大小的向量N 例如 x rand N 1 我想计算长度子集的最小标准差K在向量中 When N and K很小 很容易找到最好的子集 因为我可以使用nchoosek N K 枚举所有可能的子集 但是当值N and K比我们说的要
  • C# 枚举到字符串自动转换?

    是否可以让编译器自动将我的 Enum 值转换为字符串 这样我就可以避免每次都显式调用 ToString 方法 这是我想做的一个例子 enum Rank A B C Rank myRank Rank A string myString Ran
  • java Runtime.getRunTime().exec 和通配符?

    我正在尝试使用删除垃圾文件 Process p Runtime getRuntime exec 只要我不使用通配符 它 就可以正常工作 即 Process p Runtime getRuntime exec bin rm f specifi
  • 将变量从 jenkins 传递到 testng.xml

    我想根据从詹金斯传递的变量运行测试用例 例如 选择您要运行的测试用例 测试用例一 测试用例二 在 pom xml maven 中
  • 我可以将 UseCSharpNullComparisonBehavior 用于单个查询吗?

    我有一个查询 该查询曾经是存储过程 现已转换为 EF 查询 现在已经超时了 使用 SQL Profiler 我可以看到生成的 SQL 的唯一区别是 EF 转变的新行为entity Property value into entity Pro
  • Apache Kafka 是否提供异步订阅回调 API?

    我的项目正在将 Apache Kafka 视为老化的基于 JMS 的消息传递方法的潜在替代品 为了让这个过渡尽可能的顺利 如果替代的排队系统 Kafka 有一个异步订阅机制那就更理想了 类似于我们当前项目使用的JMS机制MessageLis
  • Microsoft JDBC 中的 JTDS 属性相当于什么?

    我正在将 JTDS 连接更改为 Microsoft JDBC 并且我看到存在于http jtds sourceforge net faq html http jtds sourceforge net faq htmlMicrosoft JD
  • Checkstyle - 方法按修饰符排序

    是否可以添加到 checkstyle 规则以按修饰符对类中的方法进行排序 我的意思是开头的公共方法和最后的私有方法 MethodsOrderCheck做这个工作 检查文档 https www qulice com qulice checks
  • 更改 Xamarin.Forms 应用中顶部栏和底部栏(ControlsBar、StatusBar)的颜色

    无论如何 即使后面需要特定于平台的代码 也可以更改顶部栏 蓝色的 和底部栏 黑色的 的颜色吗 我希望添加对浅色和深色模式的支持 因此我希望能够在运行时更改它 有可能的 Android Using Window SetStatusBarCol
  • 使用数据绑定,如何将包含表情符号的文本绑定到标签并使其正确显示?

    我正在编写一个应用程序来连接 WordPress BuddyPress API 该应用程序将允许用户通过 API 相互发送消息 当这些消息包含表情符号时 我很难正确显示它们 以下是 API 返回的消息文本的简短示例 Hi x1f642 ho
  • spring data jpa 过滤 @OneToMany 中的子项

    我有一个员工测试实体是父实体并且FunGroup信息子实体 这两个实体都是通过employeeId映射 我需要一种方法来过滤掉与搜索条件匹配的子实体 以便结果仅包含父实体和子实体 满足要求 员工测试类 Entity name Employe
  • 如何同步nosql db(ravendb)中的更改

    我已经开始在 RavenDB 的示例上学习 NoSQL 我从一个最简单的模型开始 假设我们有由用户创建的主题 public class Topic public string Id get protected set public stri
  • 选择合适的IDE

    您会推荐使用以下哪种 IDE 语言来在 Windows 下开发涉及识别手势并与操作系统交互的项目 我将使用 OpenCV 库来执行图像处理任务 之后 我将使用 win32 API 或 NET 框架与操作系统交互 具体取决于您建议的工具 性能
  • 连接到没有元数据的网络服务

    我想连接到此网络服务 https training api temando com schema 2009 06 server wsdl https training api temando com schema 2009 06 serve
  • Xcode 7 调试器不会中断内联标头函数

    过去五年我一直在各种 C 项目中使用 Xcode 没有出现这个问题 今天 我打开了一个较旧的项目 大约 2 年前 并尝试通过在该函数中放置一个活动断点来调试头文件中的内联函数 由于某种原因 调试器不会中断此代码 但是 如果我在调用该函数的
  • Boost.asio和异步链,unique_ptr?

    我对异步编程不太熟悉 我有一个问题 我的问题如下 给出 boost asio 中 C 11 的 echo server 示例 http www boost org doc libs 1 60 0 doc html boost asio ex
  • 从脚本启用/禁用 GameObject 组件 [Unity3D]

    我需要获取一个脚本中设置的布尔值 放入名为 bouclier 的变量 以启用或禁用游戏对象 该变量位于游戏对象 Player 中 此处右下角 我需要启用或禁用这个游戏对象 Bouclier01 为此 我将脚本附加到游戏对象 Bouclier
  • 在windows + opengl中选择图形设备

    我知道如何使用 openGL 打开窗口 使用 Win32 或其他工具包 但是当系统有2块显卡时 如何选择要渲染的图形设备 我的编程语言是 C 我专注于 Windows 但任何示例都将受到欢迎 编辑 也许更好地解释我的问题是个好主意 以便添加
  • 实体框架代码首次日期字段创建

    我正在使用实体框架代码优先方法来创建我的数据库表 下面的代码 创建一个DATETIME数据库中的列 但我想创建一个DATE柱子 DataType DataType Date DisplayFormatAttribute ApplyForma

随机推荐

  • 无法连接到 (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