换钱的最少货币数(NC126/考察次数Top69/难度简单)
描述:
给定数组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/难度简单)相关推荐
- 牛客题霸 [ 换钱的最少货币数] C++题解/答案
牛客题霸 [ 换钱的最少货币数] C++题解/答案 题目描述 给定数组arr,arr中所有的值都为正整数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个aim,代表要找的钱 ...
- Python换钱的最少货币数
题目: 给定数组arr,arr中所有的值都为正数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim,代表要找的钱数,求组成aim的最少货币数. 例: arr = [ ...
- 最少钱币数不java,【动态规划专题】3:换钱的最少货币数
<程序员代码面试指南--IT名企算法与数据结构题目最优解> 左程云 著 换钱的最少货币数 [题目] 给定数组arr, arr中所有的值都为正数且不重复.每个值代表一种面值的货币,每种面值的 ...
- java 最少货币单元组合换钱_动态规划. 换钱的最少货币数和最多方法数
通过对换钱类题目的学习,我们将了解到 暴力递归及优化方法 记忆搜索(优化一) 动态规划的基本实现方法(优化二) 动态规划的空间优化(优化三) 1. 换钱的最少货币数,货币可重复使用 给定数组arr,a ...
- python 货币合适_算法之Python实现 - 001 : 换钱的最少货币数
[题目]给定数组arr,arr中所有的值都为正数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim代表要找的钱数,求组成aim的最少货币数. [代码1]:时间与额外 ...
- 牛客 换钱的最少货币数
题目链接:https://www.nowcoder.com/practice/4e05294fc5aa4d4fa8eacef2e606e5a8?tpId=101&tqId=33080& ...
- 动态规划问题——换钱的最少货币数
题目: 给定数组arr,arr中所有的值都为正数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,在给定一个整数aim,代表要找的钱数,求组成aim的最少货币数. 示例: arr = ...
- 算法:换钱的最少货币数
题目 给定数组arr,arr中所有的值都为正整数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个aim,代表要找的钱数,求组成aim的最少货币数. 输入 输入包括两行,第一 ...
- [动态规划] 换钱的最少货币数
算法专题导航页面 [题目描述] 给定数组arr,arr中所有的值都为正整数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个aim,代表要找的钱数,求组成aim的最少 ...
最新文章
- 日常遇到的一些问题或知识的笔记(一)
- “不给钱就删库”的勒索病毒, 程序员该如何防护?
- 002-docker17.06安装
- 深度学习目标检测中计算目标的AP(average precision)平均精度、有什么用?
- 电子徽章:融创意、疯狂与电子设计中
- 在有限多的不大于100的正整数中,找出尽量多个相加起来值介于98~102之间的组合...
- 计算机能力挑战赛_蓝桥杯、PAT、CCF CSP、团体程序设计天梯赛、传智杯、计算机能力挑战赛、软考等大学生编程比赛/考试介绍...
- mysql设置查询结果最大值_查找MySQL查询结果字段的最大值
- 如何在屏幕实时显示自己键盘的输入字符?
- 取消语法检测_中考取消了考纲,学生要如何得高分
- 资源放送丨《Oracle聚簇因子的作用 - 2020云和恩墨大讲堂》PPT视频
- 阅文启动“2022全球作家孵化项目” 加速网络文学出海
- System.Windows.Forms.TreeView
- 新形势下电力监控系统网络安全风险分析与防护对策
- 618网购盛宴开启,容联AI+CC为企业构建电商“新基建”中台
- 如何缓解眼睛疲劳酸痛?
- 天堂2启动mysql就没了_单机天堂2运行不了 求助
- 正确介绍自己的项目,终于不用害怕面试了
- vs2015设置c语言,VS2015的使用
- k8spod使用gpu
热门文章
- 字节、位、bit、byte、KB、B、字符之间有什么关系?
- 2023年AP考试报名已开启,AP理科各科目难度系数和五分率盘点
- 解决网站漏洞 短信验证码被盗刷 该怎么办
- 优化方法:常用数学符号的含义
- 网络广告常用英语术语
- 【PaddleOCR-kie】关键信息抽取1:使用VI-LayoutXLM模型推理预测(SER+RE)
- mac m2 编译dubbo3.1.x版本报Missing:com.google.protobuf:protoc:exe:osx-aarch_64
- 十大算法之普里姆算法
- 投资界那点事儿:VC们惯用的十大英文装逼词汇
- 戴尔显示器上的耳机口,能收麦克风的音嘛?