C++ 找零程序2024年8月28日 | 阅读 4 分钟 在本文中,我们将看到最常被问到的面试问题。找零钱问题是动态规划方法的一个很好的例子。现在让我们来理解问题陈述。 问题陈述 给定 N 和一个包含一些数字(卢比硬币)的数组(例如 coins[])。N 是一个硬币,数组包含各种硬币。任务是使用数组中的硬币找零 N。以使用最少硬币数量的方式找零。 示例 我们以输入数组 coins[] = {10, 25, 5},总硬币数为 3 为例。 我们有 N = 30。 输出是二,因为我们可以使用一枚 25 卢比硬币和一枚 5 卢比硬币来凑成 30。(25 + 5 = 30) 同样,coins[] = {1, 9, 6, 5},总硬币数为 4。 N = 13。 输出是三,因为我们需要两枚 6 卢比硬币和一枚 1 卢比硬币。(6 + 6 + 1 = 13) 方法 1 该方法使用递归方法。我们从 N 开始,在每次迭代中,我们将问题分解为更小的子问题。这是通过从硬币数组中取出每个硬币并从 N 中减去它来完成的。当 N 变为零时,我们得到所需的解决方案。为了获得最佳答案,我们返回所有组合中的最小值。 C++ 代码 输出 Minimum coins needed are 2 上述解决方案不适用于更大的输入。在这种情况下,递归方法会失败。 现在让我们看看一种优化的方法。 方法 2 这种方法利用了自下而上的动态规划思想。 由于子问题会反复计算,因此存在重叠子问题的情况。重新计算的问题可以通过记忆化的特性来解决,即创建一个 dp[] 数组,用于存储特定阶段计算出的值。在每个阶段计算所有可能的组合。在所有组合之后,dp[] 数组中的最后一个值就是我们的答案。 C++ 代码 输出 Minimum coins needed are 2 代码的时间复杂度是 O(total_coins + sum)。由于在每个阶段存储结果并在其他迭代中利用它,这是一种非常优化的方法。 下一主题C++ 程序:使用类添加两个复数 |
C++ 是一种灵活且强大的编程语言,结合了过程式和面向对象编程范例。C++ 作为 C 编程语言的扩展而创建,增加了类和对象等重要功能,使得编写模块化和可重用代码成为可能。C++ 的优势之一是……
阅读 4 分钟
您是否在 C++ 代码中为处理格式不一致的字符串而烦恼?在不同字符串格式样式之间进行转换通常是程序员面临的常见挑战,尤其是在处理 Camel Case 和 Snake Case 时。将 Camel Case 字符串转换为 Snake Case...
阅读 12 分钟
在 C++ 中,还存在一种情况,即需要通过最小增量来找到数组中的最小排除值 (MEX)。MEX 通常找到数组元素中未出现的最小非负整数。最终产物...
18 分钟阅读
大家好!今天我们将学习关于。我们可能会有一个疑问,为什么函数在 C++ 中被称为裸函数(naked function)?在我们了解它之前,我们应该先了解什么是函数调用?C++ 中的函数调用是激活函数的过程,并且...
7 分钟阅读
有时需要输入的数据在执行时分配。例如,随着新员工加入组织,员工列表会增加,当有人离开组织时也会减少。这被称为管理……
阅读 3 分钟
该项目的代码是用 C++ 编程语言编写的。关于系统,用户可以显式检查某班级的学生费用单,更改学校的收费表,还可以查看学校的收费表作为列表。以下功能可用...
阅读 48 分钟
在本文中,我们将讨论其语法和示例。btown() 函数是 C 中的一个标准库函数,它将单字节字符转换为宽字符。它用于将单字节字符转换为相应的宽字符,接受...
阅读 3 分钟
数组是存储在内存中相邻的相关数据片段的集合。通过索引号检索每个数据片段的最基本数据结构。将数组的项按升序排列...
阅读 4 分钟
设计模式是在软件设计中反复出现的问题的成熟解决方案,由经验丰富的软件工程师开发。它们提供了一种标准化和改进软件系统设计的方法,使其更易于维护、修改和扩展。在 C++ 中,有许多不同的……
阅读 6 分钟
作为一种通用编程语言,C++ 提供了多种函数,可用于处理和处理所考虑的信息。在 C++ 中,一个鲜为人知但非常有用的函数是 towctrans()。它属于 <cwctype> 库,主要用于字符类别和/或种类。Towctrans() 函数...
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India