找零钱问题

最近在做华为机试体验题,遇到一个“找零钱”的题目,如下

想起之前在牛客网上看到左程云老师讲过的动态规划问题,很像,题目如下:

有数组penny,penny中所有的值都为正数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim(小于等于1000)代表要找的钱数,求换钱有多少种方法。

给定数组penny及它的大小(小于等于50),同时给定一个整数aim,请返回有多少种方法可以凑成aim。


用Java编程实现:

public class DynamicProgramming {public int countWays(int[] penny, int n, int aim) {int[][] dp = new int[n][aim + 1];// 定义一个矩阵,dp[i][j]表示用penny[0...i-1]个货币组成j的钱数if (penny.length == 0 || aim < 0)return 0;for (int i = 0; i < n; i++) {dp[i][0] = 1;// 第一列全是1}for (int i = 0; i < aim + 1; i++)dp[0][i] = (i % penny[0] == 0) ? 1 : 0;// 第一行中是i的倍数的则为1for (int i = 1; i < n; i++) {for (int j = 1; j < aim + 1; j++) {if (j >= penny[i]) {dp[i][j] = dp[i - 1][j] + dp[i][j - penny[i]];} else {dp[i][j] = dp[i - 1][j];}}}return dp[n - 1][aim];}//以下是自己添加的测试用例,在牛客网上不需要输入(它自带测试用例)public static void main(String[] args) {int[] penny = { 1, 3, 4 };int n = penny.length;int aim = 3;DynamicProgramming dynamicProgramming = new DynamicProgramming();System.out.println(dynamicProgramming.countWays(penny, n, aim));}
}

输出:3


关于动态规划,啰嗦一句,先看懂暴力搜索,动态规划就不难理解。


课程参考地址:http://www.nowcoder.com/courses/1?coupon=AO79vdy  

优惠码:AO79vdy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/385993.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vga焊接线顺序_焊接工艺问答,不做焊接也要收藏起来

点 机械前沿”关注置顶引领机械前沿、机械视频&#xff0c;汽车、加工技术、3D打印、自动化、机器人、生产工艺、轴承、模具、机床、钣金等行业前沿在这里等你 焊接工艺问答1.什么叫焊接条件&#xff1f;它有哪些内容&#xff1f; 答&#xff1a;焊…

7年老Android一次操蛋的面试经历,挥泪整理面经

看到还有很多程序员连面试流程都没有彻底弄清楚&#xff0c;今天&#xff0c;我们以阿里为例&#xff0c;来聊聊互联网大厂的面试流程和过程&#xff01; 本篇主要还是聊聊社招的面试过程&#xff01;阿里以及其他的互联网大厂的技术类社招面试&#xff0c;通常情况是 4 个轮次…

gin context和官方context_Go Web 小技巧(一)简化Gin接口代码

不知道大家在使用 Gin 构建 API 服务时有没有这样的问题:参数绑定的环节可不可以自动处理&#xff1f;错误可不可以直接返回&#xff0c;不想写空 return, 漏写就是 bug本文通过简单地封装&#xff0c;利用 go 的接口特性&#xff0c;提供一个解决上述两个问题的思路一、解决过…

7年老Android一次操蛋的面试经历,深度好文

Java基础 Java Object类方法HashMap原理&#xff0c;Hash冲突&#xff0c;并发集合&#xff0c;线程安全集合及实现原理HashMap 和 HashTable 区别HashCode 作用&#xff0c;如何重载hashCode方法ArrayList与LinkList区别与联系GC机制Java反射机制&#xff0c;Java代理模式Jav…

Hadoop大数据应用生态圈中最主要的组件及其关系

Hadoop Common Hadoop Common是在Hadoop0.2版本之后分离出来的HDFS和MapReduce独立子项目的内容&#xff0c;是Hadoop的核心部分&#xff0c;能为其他模块提供一些常用工具集&#xff0c;如序列化机制、Hadoop抽象文件系统FileSystem、系统配置工具Configuration&#xff0c;并…

7年老Android一次操蛋的面试经历,系列教学

公司的需求 不同的公司&#xff0c;不同的需求现在的市场上&#xff0c;公司很多&#xff0c;大致上可以归纳为两个大类&#xff1a;大公司和小公司&#xff0c;他们招聘时对人才的需求也不一样。 小公司 小公司他们一般急需的是能够投入工作的人才&#xff0c;因为公司规模…

丁香园 武汉 神童_杭州、武汉、成都哪个城市更适合程序员发展

很多朋友讨论起房价和职业发展机会&#xff0c;都会提到这三个城市&#xff0c;有的人认为目前杭州房价太贵了&#xff0c;生活成本高&#xff0c;华中的武汉和西部崛起的成都都在鼓励高新技术发展并且有了一定成果&#xff0c;在选择职业发展和定居城市之间该如何取舍呢&#…

Windows 7 64位系统上搭建Hadoop伪分布式环境(很详细)

在开始配置前&#xff0c;我们先了解Hadoop的三种运行模式。 Hadoop的三种运行模式 独立&#xff08;或本地&#xff09;模式&#xff1a;无需运行任何守护进程&#xff0c;所有程序都在同一个JVM上执行。在独立模式下测试和调试MapReduce程序很方便&#xff0c;因此该模式在…

7年老Android一次操蛋的面试经历,讲的太透彻了

由于涉及到的面试题较多导致篇幅较长&#xff0c;我根据这些面试题所涉及到的常问范围总结了并做出了一份学习进阶路线图​​​​​​​及面试题答案免费分享给大家&#xff0c;文末有免费领取方式&#xff01; View面试专题 View的滑动方式View的事件分发机制View的加载流程…

80后程序员月薪30K+感慨中年危机,面试必问!

说说程序猿行业 现在社会上给IT行业贴上了几个标签&#xff1a;高薪、高危、高大上、秃顶&#xff08;哈哈&#xff09;。这些标签我相比大家都比较清楚&#xff0c;至于为什么是这些标签呢&#xff1f;而且这些标签是真实还是假象呢&#xff1f; 高薪 作为IT行业来说&#…

华为照片在哪个文件夹_原来华为手机还能这样清理垃圾,怪不得你的手机可以多用5年...

对于目前市场上的智能手机来说&#xff0c;大家的手机功能都是差不多的&#xff0c;除了一些外观上的差别之外&#xff0c;最大的区别就是手机的内存&#xff0c;但是很多朋友却表示手机内存很大&#xff0c;但是没用多久&#xff0c;手机就会出现卡顿或者是运行速度变慢的现象…

996页阿里Android面试真题解析火爆全网,全网首发!

在安卓系统中&#xff1a; 当系统内存不足时&#xff0c;Android系统将根据进程的优先级选择杀死一 些不太重要的进程&#xff0c;优先级低的先杀死。进程优先级从高到低如下。 前台进程 处于正在与用户交互的activity与前台activity绑定的service调用了startForeground&…

996页阿里Android面试真题解析火爆全网,分享面经!

导语 学历永远是横在我们进人大厂的一道门槛&#xff0c;好像无论怎么努力&#xff0c;总能被那些985,211 按在地上摩擦&#xff01; 不仅要被“他们”看不起&#xff0c;在HR挑选简历&#xff0c;学历这块就直接被刷下去了&#xff0c;连证明自己的机会也没有&#xff0c;学…

access ole 对象 最大长度_Redis 数据结构和对象系统,有这 12 张图就够了!

作者 | 程序员历小冰责编 | 林瑟Redis 是一个开源的 key-value 存储系统&#xff0c;它使用六种底层数据结构构建了包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象的对象系统。 今天我们就通过 12 张图来全面了解一下它的数据结构和对象系统的实现原理。01数据结…

【面试总结】2021Java春招面试经历

三、堆空间 基本描述 JVM启动时创建堆区&#xff0c;是内存管理的核心区&#xff0c;通常情况下也是最大的内存空间&#xff0c;是被所有线程共享的&#xff0c;几乎所有的对象实例都要在堆中分配内存&#xff0c;所以这里也是垃圾回收的重点空间。 堆栈关系 栈是JVM运行时的…

【高级Java架构师系统学习】最新Java高级面试题汇

性能调优 影响MySQLServer 性能的相关因素 商业需求对性能的影响系统架构及实现对性能的影响Query语句对系统性能的影响Schema设计对系统的性能影响硬件环境对系统性能的影响 MySQL 数据库锁定机制 MySQL锁定机制简介各种锁定机制分析合理利用锁机制优化MySQL MySQL数据库Qu…

vue 安装指定版本swiper_Vue中的runtime-only和runtime-compiler

在我们使用vue-cli的时候&#xff0c;会提示你安装的版本可以看到有两种版本&#xff1a;Routime Only和Runtime Compiler版本1.Runtime Only - 代码中不可以有任何template 性能更高在该版本下&#xff0c;通常需要借助如webpack的vue-loader发工具把.vue文件编译成js因为是在…

一文搞懂JVM架构:入职3个月的Java程序员面临转正

Java基础 1.JAVA 中的几种数据类型是什么&#xff0c;各自占用多少字节。 2.String 类能被继承吗&#xff0c;为什么。 3. 两个对象的 hashCode() 相同&#xff0c;则 equals() 也一定为 true&#xff0c;对吗&#xff1f; 4. String 属于基础的数据类型吗&#xff1f; 5.…

不显示调用super_让不懂编程的人爱上iPhone开发(2017秋iOS11+Swift4+Xcode9版)-第11篇

欢迎回到我们的iPhone开发教程系列&#xff0c;让我们继续前进吧。重新来过别害怕&#xff0c;哥不是让你抛弃之前所有的源代码&#xff0c;从零开始重新构建这个项目&#xff01;这里说的是游戏界面里面的“Start over”按钮。在我们的to-do清单里面曾经提到过&#xff0c;这个…

一文搞懂JVM架构:跳槽面试大厂被拒

正文 在实际的工作项目中&#xff0c; 缓存成为高并发、高性能架构的关键组件 &#xff0c;那么Redis为什么可以作为缓存使用呢&#xff1f;首先可以作为缓存的两个主要特征&#xff1a; 在分层系统中处于内存/CPU具有访问性能良好&#xff0c;缓存数据饱和&#xff0c;有良好…