贪心算法——找纸币问题
2019独角兽企业重金招聘Python工程师标准>>>
贪心算法——找纸币问题
问题主题:找钱 |
问题描述: 假设有1元、2元、5元、10元、20元、50元、100的纸币分别为c0, c1, c2, c3, c4, c5, c6,张。现在要用这些钱来支付K元,至少要用多少张纸币?如果能找,则输出纸币的张数,不能找则输出No 限制条件: 0<=c0, c1,c2,c3,c4,c5,c6<=109 0<=K<=109 |
样例: 输入 C0=3, c1=0, c2=2, c3=1, c4=0, c5=3, c6=5 输出 6 |
【解法一】
解题分析:
本题使用贪心算法,只需要考虑“尽可能多地使用面值大的纸币”,然后根据面值的大小从大到小排序依次选择。
程序实现:
C++
#include "iostream" using namespace std; const int N = 7; static int K = 6200; int min(int num1, int num2); int momeyCount[N] = {3, 0, 2, 1, 0, 3, 5}; int value[N] = {1, 2, 5, 10, 20, 50, 100}; int giveChange() { int num = 0; for(int i = N-1; i >= 0; i --) { int c = min(K/value[i], momeyCount[i]); K = K - c * value[i]; num += c; } if(K > 0) num = -1; return num; } int min(int num1, int num2) { return num1 < num2 ? num1 : num2; } int main() { int result = giveChange(); if(result != -1) cout << result << endl; else cout << "NO" << endl; return 0; } |
Java
|
算法复杂度:
时间复杂度:如果纸币已经排序(如C++代码),O(n);如果纸币未经排序 (如Java代码),O(nlogn);
转载于:https://my.oschina.net/verynix/blog/365765
贪心算法——找纸币问题相关推荐
- c语言贪心算法找零问题,贪心算法-找零问题-实验报告
<贪心算法-找零问题-实验报告>由会员分享,可在线阅读,更多相关<贪心算法-找零问题-实验报告(7页珍藏版)>请在人人文库网上搜索. 1.实验三 课程名称:算法设计与实现 实验 ...
- Java - 初探贪心算法(纸币找零,背包问题)
贪心算法 1. 什么是贪心算法? 二.贪心算法的基本思路 三.贪心算法适用的问题 四.贪心算法的实现框架 五.贪心策略的选择 六.贪心算法的几个例子 1. 纸币找零问题 2. 背包问题 1. 什么是贪 ...
- 厉害了,学霸利用贪心算法找偷车贼
转载自:公众号[超级数学建模] 作者:超模君 惹谁 都不要惹会算法的人 今天要讲的故事的主人公,是来自圣母大学计算机系的副教授史戈宇.就在不久之前,他还经历了一场惊心动魄的劫车事件. 度假旅游遇劫匪 ...
- 「算法学习」:贪心算法找零问题
找零算法,找零??? 假设你是一个商店老板,你需要给顾客找零n元钱,你手上有的钱的面值为:100元,50元,20元,5元,1元.请问如何找零使得所需要的钱币数量最少? 例子:你需要找零126元,则所需 ...
- 贪心算法——找零钱问题
假设有数目不限的面值为20,10,5,1的硬币. 给出需要找零数,求出找零方案,要求:使用数目最少的硬币. 对于此类问题,贪心算法采取的方式是找钱时,总是选取可供找钱的硬币的最大值.比如,需要找钱数为 ...
- 134. 加油站(贪心算法)
在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升. 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升.你从其中的一个加 ...
- java零钱换整程序_贪心算法换零钱(java)
贪心算法思想 贪心算法总是做出在当前看来做好的选择.也就是说贪心算法并不从整体最后考虑,他做出的选择只是局部最优选择.他所做出的仅是在某种意义上的局部最优解.贪心算法不是对所有问题都能得到整体最优解, ...
- 贪心算法在找钱问题上的使用
背景: 对于现实生活中的找零问题,假设有数目不限,面值为20,10,5,1的硬币. 求出找零方案,要求:使用数目最少的硬币. 对于此类问题,贪心算法采取的方式是找钱时,总是选取可供找钱的硬币的最大值. ...
- 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码
1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...
最新文章
- oracle sql 平均分配 分组_SQL学习二
- Ubuntu 16.04 安装 CUDA、CUDNN 和 GPU 版本的 TensorFlow 一般步骤总结
- 装个Redmine真是麻烦啊
- 让数字校园走向云端【我身边的戴尔企业级解决方案】
- 基于h5的跳一跳游戏的开发与实现_「南宁小程序开发」企业开发小程序有哪些好处?...
- 七牛云存储Python SDK使用教程 - 上传策略详解
- python 处理python编码的基本过程
- RTP/RTCP/RTSP协议初探
- 李洋疯狂C语言之用递归解决李白喝酒问题(二)
- Qt工作笔记-3D效果唤出QWidgets界面(QGraphicsProxyWidget与QTimeLine)
- 在 linux 下安装 Mysql 的详细过程
- 前端为什么有的接口明明是成功回调却执行了.catch失败回调_前端战五渣学JavaScript——Promise...
- java script 下载_JavaScript下载
- 电机与拖动matlab仿真,Matlab仿真软件在电机与拖动中的应用
- 短信下发的成功失败概率是多少?如何提高到达率?
- 海康视频android 开发实例,海康设备android播放器SDK
- VS2008SP1的MFC测试-(OFFICE2007风格)Ribbon风格(DJ尐舞图形画板2008)
- Makefile:14: config-host.mak: No such file or directory
- google 语音识别 VS 百度语音识别
- 蓝桥杯2017国赛 瓷砖样式 dfs+hush