算法(三)--------扔鸡蛋问题和找零钱问题
扔鸡蛋问题描述:You are given two eggs, and access to a 100-storey building. The aim is to find out the highest floor from which an egg will not break when dropped out of a window from that floor.
What strategy should you adopt to minimize the number of egg drops it takes to find the solution?
找零钱问题描述:
• 当硬币系统为2角5分、 1角、 5分、 1分时,要找给顾客6角3分钱,怎么做?所拿出的硬币个数最少
– 最优解: 6角3分 = 2个2角5分 + 1个1角 + 3个1分,最优值为6 coins
– 阶段:每次…
• 状态(子问题的规模):剩余数额
• 决策:每次在2角5分、 1角、 5分、 1分中选择一个面值不超过剩余数额的最大硬币
• 当硬币系统为4分、 3分、 1分时,要找给顾客6分钱,怎么做?
– 依照上述策略, 6分 = 1个4分 + 2个1分, 3 coins
– 而2个3分才是最优解!
解决方案:
•选择组成6¢的硬币的最少数目 (1¢, 3¢, and 4¢)
选取所以的硬币1¢, 2¢, 3¢, ..., 6¢
组成 1¢, 仅仅使用 1¢ 就可以 (1 coin)
组成 2¢, 使用1¢+1¢ (1 coin + 1 coin = 2 coins)
组成 3¢, 使用3¢ coin (1 coin)
组成 4¢, 使用4¢ coin (1 coin)
组成 5¢, try
1¢ + 4¢ (1 coin + 1 coin = 2 coins)
2¢ + 3¢ (2 coins + 1 coin = 3 coins)
原问题:组成 6¢, try
1¢ + 5¢ (1 coin + 2 coins = 3 coins)
2¢ + 4¢ (2 coins + 1 coin = 3 coins)
3¢ + 3¢ (1 coin + 1 coin = 2 coins) ------>最好的方案
转载于:https://www.cnblogs.com/nolonely/p/5399380.html
算法(三)--------扔鸡蛋问题和找零钱问题相关推荐
- 算法学习之路|在霍格沃茨找零钱
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易.& ...
- 算法第四版扔鸡蛋问题
本题来源于算法第四版1.4.25.1.4.26. 同时好像记得看过的腾讯面经里也问到过类似题目,因此觉得有必要仔细做一下. 题目如下: 一幢 100 层的大楼,给你两枚鸡蛋.假设,在第 n 层扔下鸡蛋 ...
- 找零钱问题——贪心算法
蓝桥杯--算法训练--找零钱 有n个人正在饭堂排队买海北鸡饭.每份海北鸡饭要25元.奇怪的是,每个人手里只有一张钞票(每张钞票的面值为25.50.100元),而且饭堂阿姨一开始没有任何零钱.请问饭堂阿 ...
- C++贪心算法求解找零钱问题(很形象)
贪心算法求解找零钱问题 1.什么是贪心算法? 贪心算法是一种策略,总是做出在当前看来是最好的选择,总结出来几个字:寻找最优解 举个例子来说就是:"有一个只能往前走的果园,里边有各种水果让你免 ...
- 【广义找零钱问题】 贪心算法求解进制转换问题
原题如下,怪我没读懂题意就开始写代码,曲解了题意,就写出个这样的奇葩进制来.但是运行结果与我的预期(实际上是对题的的错误理解)相符. 功能(与上图无关) 实现自定义独特进制的输出.类似于找零钱问题,见 ...
- 贪心算法1——找零钱问题
贪心算法是一种不追求最优解,只希望找到较为满意解的方法.贪心算法省去了为找最优解要穷尽所有可能而必须耗费的大量时间,因此它一般可以快速得到比较满意的解. 贪心算法常以当前情况做最优选择,而不考虑各种可 ...
- 动态规划算法思想解决找零钱问题
前言 关于找零钱问题,网上已经有很多相关的资料以及优秀的文章博客等.这里写这篇博客的初衷很简单,就是为了方便自己,回过头来捡起这个知识能快一点,接受起来更易理解点:他人的文章写的再好,毕竟是别人的,学 ...
- 每日一道算法题:高楼扔鸡蛋问题(动态规划问题)
题目是这样:你面前有一栋从 1 到N共N层的楼,然后给你K个鸡蛋(K至少为 1).现在确定这栋楼存在楼层0 <= F <= N,在这层楼将鸡蛋扔下去,鸡蛋恰好没摔碎(高于F的楼层都会碎,低 ...
- c语言贪心算法零钱问题,贪心算法(2)——找零钱问题
一.找零钱问题 例题1: 有 1 元,5元,10元,20元,100元,200元的钞票无穷多张.现在使用这些钞票支付X元,最少需要多少张钞票. X = 628 最佳支付方法: 3张200块的,1张20块 ...
- 算法学习笔记——动态规划:高楼扔鸡蛋
LeetCode 887. 鸡蛋掉落 建筑有n层(取值1,2,...n),存在一个楼层F(0<=F<=n,注意F取值比n多一个),从高于F的楼层扔鸡蛋,鸡蛋会碎:否则鸡蛋不会碎 给你k枚相 ...
最新文章
- 微信小程序 view中的image水平垂直居中
- 北大教授:学术会议与学术研讨渐行渐远,已沦为学术表演~
- c语言dp状态转移方程,[总结-动态规划]经典DP状态设定和转移方程
- 【Java Web开发指南】有状态会话Bean(SLSB) 和无状态会话Bean(SFSB)的区别
- vue.js环境安装
- 极大似然估计(Maximum Likelihood)与无监督
- 中反应器体积_实验室规模半连续和连续生物反应器在微生物学和生物技术工艺中的作用...
- Java 中sleep()与wait()的区别
- 从开源自治到微服务云化,用这剂良药提升微服务幸福感
- 【最全PPT下载+直播回放】DTCC 2019:阿里云数据库8大要点精彩回顾
- linux判断改行符_Linux判断符如何使用?
- 算法 Tricks(五)—— 二进制逻辑运算
- app源码 官府菜.cn_坑死的天牛淘客APP
- 企业工商数据查询接口
- 友盟统计 H5 vue 隐藏友盟图标
- java毕业生设计租车系统计算机源码+系统+mysql+调试部署+lw
- 通过经纬度获取OpenstreetMap,谷歌地图,高德地图的切片
- 今天不谈技术,说说一些常用的软件~By 逆天
- Affinity Photo for Mac(修图软件)
- 前端面试题之JavaScript