描述:
给定数组arr,arr中所有的值都为正整数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个aim,代表要找的钱数,求组成aim的最少货币数。
如果无解,请返回-1.
【要求】
时间复杂度O(n×aim),空间复杂度On。

示例1
输入:
[5,2,3],20
返回值:
4
(题目来自牛客网)

用C++实现如下

class Solution {
public:/*** 最少货币数* @param arr int整型vector the array* @param aim int整型 the target* @return int整型*/int minMoney(vector<int>& arr, int aim) {//此算式属于动态规划问题//思路,输入的是面值数组和目标钱数额,定义一个一维数组dp[i]存放所需的面额的最小//数量,依次遍历不同的面额求出面额的最小数量(可以刷新,始终保持最小)int n = arr.size();                               //根据面额的不同确定遍历的次数vector<int> dp(aim + 1, 1e9);                     //初始化dp数组(开始初始化为很大的值)dp[0] = 0;                                        //dp数组的第一个值赋值为零for(int i = 0; i < n; ++i)                        //依次遍历每种面额(达到目标值所需的面额数){for(int j = arr[i]; j <= aim; ++j)            //从面额值开始依次往后遍历(刷新保持最小值){dp[j] = min(dp[j-arr[i]]+1, dp[j]);       //此面额值可以使用,则将dp[j-此面额]的值加1  与原来}                                             //的dp[j]作比较,始终保持和存储最小值}if(dp[aim] == 1e9){                               //一直保持着大值,则表示不能替换return -1;}else{return dp[aim];                               //则返回保持着的最小值}}
};

纯手撕代码,如果觉得内容不错麻烦点个赞,后面陆续配上Top100算法题通俗易懂的讲解视频,可以花两个月时间完全掌握,进大厂不是梦,转行狗亲测!

换钱的最少货币数(NC126/考察次数Top69/难度简单)相关推荐

  1. 牛客题霸 [ 换钱的最少货币数] C++题解/答案

    牛客题霸 [ 换钱的最少货币数] C++题解/答案 题目描述 给定数组arr,arr中所有的值都为正整数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个aim,代表要找的钱 ...

  2. Python换钱的最少货币数

    题目: 给定数组arr,arr中所有的值都为正数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim,代表要找的钱数,求组成aim的最少货币数. 例: arr = [ ...

  3. 最少钱币数不java,【动态规划专题】3:换钱的最少货币数

    <程序员代码面试指南--IT名企算法与数据结构题目最优解> 左程云 著 换钱的最少货币数 [题目] 给定数组arr, arr中所有的值都为正数且不重复.每个值代表一种面值的货币,每种面值的 ...

  4. java 最少货币单元组合换钱_动态规划. 换钱的最少货币数和最多方法数

    通过对换钱类题目的学习,我们将了解到 暴力递归及优化方法 记忆搜索(优化一) 动态规划的基本实现方法(优化二) 动态规划的空间优化(优化三) 1. 换钱的最少货币数,货币可重复使用 给定数组arr,a ...

  5. python 货币合适_算法之Python实现 - 001 : 换钱的最少货币数

    [题目]给定数组arr,arr中所有的值都为正数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim代表要找的钱数,求组成aim的最少货币数. [代码1]:时间与额外 ...

  6. 牛客 换钱的最少货币数

    题目链接:https://www.nowcoder.com/practice/4e05294fc5aa4d4fa8eacef2e606e5a8?tpId=101&tqId=33080& ...

  7. 动态规划问题——换钱的最少货币数

    题目: 给定数组arr,arr中所有的值都为正数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,在给定一个整数aim,代表要找的钱数,求组成aim的最少货币数. 示例: arr = ...

  8. 算法:换钱的最少货币数

    题目 给定数组arr,arr中所有的值都为正整数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个aim,代表要找的钱数,求组成aim的最少货币数. 输入 输入包括两行,第一 ...

  9. [动态规划] 换钱的最少货币数

    算法专题导航页面 [题目描述]     给定数组arr,arr中所有的值都为正整数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个aim,代表要找的钱数,求组成aim的最少 ...

最新文章

  1. 日常遇到的一些问题或知识的笔记(一)
  2. “不给钱就删库”的勒索病毒, 程序员该如何防护?
  3. 002-docker17.06安装
  4. 深度学习目标检测中计算目标的AP(average precision)平均精度、有什么用?
  5. 电子徽章:融创意、疯狂与电子设计中
  6. 在有限多的不大于100的正整数中,找出尽量多个相加起来值介于98~102之间的组合...
  7. 计算机能力挑战赛_蓝桥杯、PAT、CCF CSP、团体程序设计天梯赛、传智杯、计算机能力挑战赛、软考等大学生编程比赛/考试介绍...
  8. mysql设置查询结果最大值_查找MySQL查询结果字段的最大值
  9. 如何在屏幕实时显示自己键盘的输入字符?
  10. 取消语法检测_中考取消了考纲,学生要如何得高分
  11. 资源放送丨《Oracle聚簇因子的作用 - 2020云和恩墨大讲堂》PPT视频
  12. 阅文启动“2022全球作家孵化项目” 加速网络文学出海
  13. System.Windows.Forms.TreeView
  14. 新形势下电力监控系统网络安全风险分析与防护对策
  15. 618网购盛宴开启,容联AI+CC为企业构建电商“新基建”中台
  16. 如何缓解眼睛疲劳酸痛?
  17. 天堂2启动mysql就没了_单机天堂2运行不了 求助
  18. 正确介绍自己的项目,终于不用害怕面试了
  19. vs2015设置c语言,VS2015的使用
  20. k8spod使用gpu

热门文章

  1. 字节、位、bit、byte、KB、B、字符之间有什么关系?
  2. 2023年AP考试报名已开启,AP理科各科目难度系数和五分率盘点
  3. 解决网站漏洞 短信验证码被盗刷 该怎么办
  4. 优化方法:常用数学符号的含义
  5. 网络广告常用英语术语
  6. 【PaddleOCR-kie】关键信息抽取1:使用VI-LayoutXLM模型推理预测(SER+RE)
  7. mac m2 编译dubbo3.1.x版本报Missing:com.google.protobuf:protoc:exe:osx-aarch_64
  8. 十大算法之普里姆算法
  9. 投资界那点事儿:VC们惯用的十大英文装逼词汇
  10. 戴尔显示器上的耳机口,能收麦克风的音嘛?